- Timestamp:
- Jul 18, 2023, 1:25:00 PM (17 months ago)
- Branches:
- master
- Children:
- db94b5d
- Parents:
- 8b84973
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/channel.hfa
r8b84973 rc44705c 326 326 return retval; 327 327 } 328 static inline void remove( channel(T) & chan ) { T elem = (T)remove( chan ); } 329 328 330 329 331 /////////////////////////////////////////////////////////////////////////////////////////// … … 461 463 } 462 464 465 // type used by select statement to capture a chan read as the selected operation that doesn't have a param to read to 466 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 463 480 // type used by select statement to capture a chan write as the selected operation 464 481 struct chan_write {
Note: See TracChangeset
for help on using the changeset viewer.