- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/channel.hfa
rc44705c rca22a7c 326 326 return retval; 327 327 } 328 static inline void remove( channel(T) & chan ) { T elem = (T)remove( chan ); }329 330 328 331 329 /////////////////////////////////////////////////////////////////////////////////////////// … … 463 461 } 464 462 465 // type used by select statement to capture a chan read as the selected operation that doesn't have a param to read to466 struct chan_read_no_ret {467 T ret;468 chan_read( T ) cr;469 };470 __CFA_SELECT_GET_TYPE( chan_read_no_ret(T) );471 472 static inline void ?{}( chan_read_no_ret(T) & this, channel(T) & chan ) {473 this.cr{ chan, this.ret };474 }475 static inline chan_read_no_ret(T) remove( channel(T) & chan ) { chan_read_no_ret(T) cr{ chan }; return cr; }476 static inline bool register_select( chan_read_no_ret(T) & this, select_node & node ) { return register_select( this.cr, node ); }477 static inline bool unregister_select( chan_read_no_ret(T) & this, select_node & node ) { return unregister_select( this.cr, node ); }478 static inline bool on_selected( chan_read_no_ret(T) & this, select_node & node ) { return on_selected( this.cr, node ); }479 480 463 // type used by select statement to capture a chan write as the selected operation 481 464 struct chan_write {
Note:
See TracChangeset
for help on using the changeset viewer.