add reader writer header, fix cmakelists
This commit is contained in:
@@ -6,14 +6,16 @@ set(CMAKE_CXX_STANDARD 23)
|
||||
add_executable(
|
||||
os-labs
|
||||
main.cpp
|
||||
src/signal_handler.cpp
|
||||
include/signal_handler.h
|
||||
src/signal_handler.cpp
|
||||
include/buffer.h
|
||||
src/buffer.cpp
|
||||
include/producer.h
|
||||
src/consumer.cpp
|
||||
include/consumer.h
|
||||
src/producer.cpp
|
||||
include/reader_writer.h
|
||||
src/reader_writer.cpp
|
||||
)
|
||||
target_link_libraries(os-labs PRIVATE m)
|
||||
target_include_directories(os-labs PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
||||
29
include/reader_writer.h
Normal file
29
include/reader_writer.h
Normal file
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// Created by lumijiez on 12/8/24.
|
||||
//
|
||||
|
||||
#ifndef READER_WRITER_H
|
||||
#define READER_WRITER_H
|
||||
|
||||
#include <semaphore.h>
|
||||
#include <fstream>
|
||||
|
||||
class ReaderWriter {
|
||||
public:
|
||||
ReaderWriter(int numReaders, int numWriters, const std::string& filename);
|
||||
~ReaderWriter();
|
||||
void run();
|
||||
|
||||
private:
|
||||
int numReaders;
|
||||
int numWriters;
|
||||
std::string filename;
|
||||
|
||||
sem_t resourceAccess;
|
||||
sem_t readCountAccess;
|
||||
int readCount;
|
||||
|
||||
static void* reader(void* arg);
|
||||
static void* writer(void* arg);
|
||||
};
|
||||
#endif //READER_WRITER_H
|
||||
5
src/reader_writer.cpp
Normal file
5
src/reader_writer.cpp
Normal file
@@ -0,0 +1,5 @@
|
||||
//
|
||||
// Created by lumijiez on 12/8/24.
|
||||
//
|
||||
|
||||
#include "reader_writer.h"
|
||||
Reference in New Issue
Block a user