Commit Graph

8 Commits

Author SHA1 Message Date
Ivo van Dongen
5ee05a7781 [core] make actor self reference optional 2017-07-24 19:30:02 +03:00
Ivo van Dongen
81e9ed7fdd [core] add ask pattern to actor ref 2017-07-24 19:30:02 +03:00
Ivo van Dongen
a9ac314a5d [core] implement ask pattern in actor 2017-07-24 19:30:02 +03:00
Thiago Marcos P. Santos
515ffa975d [core] Store pointer instead of referect to the Object in ActorRef
GCC complains about implicitly deleted assigment constructor
when trying to do this:

void setResourceTransform(optional<ActorRef<ResourceTransform>> transform) {
    resourceTransform = transform;
}

optional<ActorRef<ResourceTransform>> resourceTransform;
2017-06-26 16:32:21 +03:00
Thiago Marcos P. Santos
54c3ccc37d [core] Make the mbgl/actor headers public
They will be needed by the DefaultFileSource, something that we
also export as public.
2017-06-26 16:32:21 +03:00
Ivo van Dongen
b608d85db7 [core] allow self closing mailbox/actor 2017-05-27 09:25:03 +03:00
John Firebaugh
2c8343aa82 [core] Block in Mailbox::close() until neither receive nor push are in progress
Otherwise, an ActorRef that's in the process of sending a message could attempt to access an invalid Scheduler reference:

      Thread 1                     Thread 2
--------------------------------------------------
 Scheduler::Scheduler
     Actor::Actor
                              weakMailbox.lock()
     Actor::~Actor
 Scheduler::~Scheduler
                               mailbox->push()
                             scheduler.schedule() 💣
2017-05-24 08:19:19 -07:00
John Firebaugh
099a1cb9f1 [core] Move actor/{mailbox,scheduler}.hpp to public include directory
Map constructor takes Scheduler&, and consumers are expected to define an implementation. Therefore the interface must be public.
2017-03-28 13:53:19 +02:00