Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Reader
- */
- int cur_id;
- int cur_num;
- sem wait_for_writer;
- sem wait_for_reader;
- void reader(const int id)
- {
- while (1)
- {
- P(wait_for_reader);
- // Wait for writer to write and release again (we don't actually need it i guess)
- P(wait_for_writer);
- V(wait_for_writer);
- // Do stuff
- if (id == cur_id)
- {
- printf( "%d", cur_num );
- }
- // Release reader lock so the writer knows we're done
- V(wait_for_reader);
- }
- }
- /*
- * Writer
- */
- void writer( )
- {
- while (1)
- {
- P(wait_for_writer);
- cur_id = get_rand_id( );
- cur_num = get_rand_num( );
- V(wait_for_writer);
- P(wait_for_reader);
- V(wait_for_reader);
- }
- }
Add Comment
Please, Sign In to add comment