Ignore:
Timestamp:
Dec 6, 2017, 11:49:36 AM (6 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
16a63a78
Parents:
a85e44c (diff), 971d9f2 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/tests/concurrent/examples/boundedBuffer.c

    ra85e44c r16988e8  
    88// Created On       : Mon Oct 30 12:45:13 2017
    99// Last Modified By : Peter A. Buhr
    10 // Last Modified On : Mon Oct 30 23:02:46 2017
    11 // Update Count     : 9
     10// Last Modified On : Tue Dec  5 23:01:51 2017
     11// Update Count     : 10
    1212//
    1313
     
    3030int query( Buffer & buffer ) { return buffer.count; }
    3131
    32 void insert( Buffer & mutex buffer, int elem ) {
    33         if ( buffer.count == 20 ) wait( buffer.empty );
    34         buffer.elements[buffer.back] = elem;
    35         buffer.back = ( buffer.back + 1 ) % 20;
    36         buffer.count += 1;
    37         signal( buffer.full );
     32void insert( Buffer & mutex buffer, int elem ) with( buffer ) {
     33        if ( count == 20 ) wait( empty );
     34        elements[back] = elem;
     35        back = ( back + 1 ) % 20;
     36        count += 1;
     37        signal( full );
    3838}
    39 int remove( Buffer & mutex buffer ) {
    40         if ( buffer.count == 0 ) wait( buffer.full );
    41         int elem = buffer.elements[buffer.front];
    42         buffer.front = ( buffer.front + 1 ) % 20;
    43         buffer.count -= 1;
    44         signal( buffer.empty );
     39int remove( Buffer & mutex buffer ) with( buffer ) {
     40        if ( count == 0 ) wait( full );
     41        int elem = elements[front];
     42        front = ( front + 1 ) % 20;
     43        count -= 1;
     44        signal( empty );
    4545        return elem;
    4646}
Note: See TracChangeset for help on using the changeset viewer.