Changeset 681d8f2 for libcfa/src


Ignore:
Timestamp:
Mar 9, 2023, 12:36:43 PM (20 months ago)
Author:
caparsons <caparson@…>
Branches:
ADT, ast-experimental, master
Children:
2ceb2bf
Parents:
0f275f7
Message:

After many red herrings I think the race between checking a message and shutdown is the true cause of the matrix.cfa bug and should be fixed

File:
1 edited

Legend:

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

    r0f275f7 r681d8f2  
    460460static inline void deliver_request( request & this ) {
    461461    this.receiver->allocation_ = this.fn( *this.receiver, *this.msg );
     462    check_message( *this.msg );
    462463    check_actor( *this.receiver );
    463     check_message( *this.msg );
    464464}
    465465
     
    681681// assigned at creation to __base_msg_finished to avoid unused message warning
    682682message __base_msg_finished @= { .allocation_ : Finished };
    683 struct __DeleteMsg { inline message; };
    684 struct __DestroyMsg { inline message; };
    685 struct __FinishedMsg { inline message; };
    686 
    687 // These are needed so that the compiler doesn't make a temporary when initializing below
    688 static inline void ?{}( __DeleteMsg & this, message & other ) { this.allocation_ = other.allocation_; }
    689 static inline void ?{}( __DestroyMsg & this, message & other ) { this.allocation_ = other.allocation_; }
    690 static inline void ?{}( __FinishedMsg & this, message & other ) { this.allocation_ = other.allocation_; }
    691 
    692 __DeleteMsg DeleteMsg = __base_msg_finished;
    693 __DestroyMsg DestroyMsg = __base_msg_finished;
    694 __FinishedMsg FinishedMsg = __base_msg_finished;
     683struct __DeleteMsg { inline message; } DeleteMsg = __base_msg_finished;
     684struct __DestroyMsg { inline message; } DestroyMsg = __base_msg_finished;
     685struct __FinishedMsg { inline message; } FinishedMsg = __base_msg_finished;
    695686
    696687Allocation receive( actor & this, __DeleteMsg & msg ) { return Delete; }
Note: See TracChangeset for help on using the changeset viewer.