Actors in C++

\zline{\fbox{ACT++}}
  class bounded_buffer : actor {
   int buf[MAX];
   int in, out;
  public:
  
  bounded_buffer() { in=0; out=0; }
  
  int get() {
   reply buf[out++];
   out %= MAX;
   if (in == out)
    become( empty_buffer,in,out);
   else
    become( partial_buffer,in,out);
  }
  
  void put( int item ) {
   buf[in++] = item;
   in %= MAX;
   if (in == out )
    become( full_buffer,in,out);
   else
    become( partial_buffer,in,out);
  }
  };
  

slide: Bounded buffer in ACT++