Synchronization

  if (used < size && used > 0) accept(put,get)
  else if (used == 0) accept(put)
  else accept(get);
  

slide: Synchronization in Active C++