Changeset adc73a5 for libcfa


Ignore:
Timestamp:
Jun 20, 2023, 2:20:56 PM (2 years ago)
Author:
caparson <caparson@…>
Branches:
master
Children:
48ec19a
Parents:
b7b3e41 (diff), d10e391 (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

Location:
libcfa/src/concurrency
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/actor.hfa

    rb7b3e41 radc73a5  
    4646enum allocation { Nodelete, Delete, Destroy, Finished }; // allocation status
    4747
    48 typedef allocation (*__receive_fn)(actor &, message &);
     48typedef allocation (*__receive_fn)(actor &, message &, actor **, message **);
    4949struct request {
    50     actor * base_receiver;
    5150    actor * receiver;
    52     message * base_msg;
    5351    message * msg;
    5452    __receive_fn fn;
     
    5957};
    6058static inline void ?{}( request & this ) {}
    61 static inline void ?{}( request & this, actor * base_receiver, actor * receiver, message * base_msg, message * msg, __receive_fn fn ) {
    62     this.base_receiver = base_receiver;
     59static inline void ?{}( request & this, actor * receiver, message * msg, __receive_fn fn ) {
    6360    this.receiver = receiver;
    64     this.base_msg = base_msg;
    6561    this.msg = msg;
    6662    this.fn = fn;
     
    460456static inline void deliver_request( request & this ) {
    461457    DEBUG_ABORT( this.receiver->ticket == (unsigned long int)MAX, "Attempted to send message to deleted/dead actor\n" );
    462     this.base_receiver->allocation_ = this.fn( *this.receiver, *this.msg );
    463     check_message( *this.base_msg );
    464     check_actor( *this.base_receiver );
     458    actor * base_actor;
     459    message * base_msg;
     460    allocation temp = this.fn( *this.receiver, *this.msg, &base_actor, &base_msg );
     461    base_actor->allocation_ = temp;
     462    check_message( *base_msg );
     463    check_actor( *base_actor );
    465464}
    466465
  • libcfa/src/concurrency/locks.hfa

    rb7b3e41 radc73a5  
    3535#include <linux/futex.h>      /* Definition of FUTEX_* constants */
    3636#include <sys/syscall.h>      /* Definition of SYS_* constants */
    37 #include <unistd.h>
     37#include <unistd.h>           /* Definition of syscall routine */
    3838
    3939typedef void (*__cfa_pre_park)( void * );
Note: See TracChangeset for help on using the changeset viewer.