add reader writer header, fix cmakelists

This commit is contained in:
2024-12-08 19:06:30 +02:00
parent 4853b9ef0a
commit ec1286ed40
3 changed files with 37 additions and 1 deletions

View File

@@ -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
View 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
View File

@@ -0,0 +1,5 @@
//
// Created by lumijiez on 12/8/24.
//
#include "reader_writer.h"