add reader writer header, fix cmakelists
This commit is contained in:
@@ -6,14 +6,16 @@ set(CMAKE_CXX_STANDARD 23)
|
|||||||
add_executable(
|
add_executable(
|
||||||
os-labs
|
os-labs
|
||||||
main.cpp
|
main.cpp
|
||||||
src/signal_handler.cpp
|
|
||||||
include/signal_handler.h
|
include/signal_handler.h
|
||||||
|
src/signal_handler.cpp
|
||||||
include/buffer.h
|
include/buffer.h
|
||||||
src/buffer.cpp
|
src/buffer.cpp
|
||||||
include/producer.h
|
include/producer.h
|
||||||
src/consumer.cpp
|
src/consumer.cpp
|
||||||
include/consumer.h
|
include/consumer.h
|
||||||
src/producer.cpp
|
src/producer.cpp
|
||||||
|
include/reader_writer.h
|
||||||
|
src/reader_writer.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(os-labs PRIVATE m)
|
target_link_libraries(os-labs PRIVATE m)
|
||||||
target_include_directories(os-labs PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
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