Ivo van Dongen
8b9794b1a7
[core] Actor/ActorRef - ask calls to void methods
...
- allows to wait for execution of void methods as well as non-void methods
2017-09-22 23:33:56 +03:00
Ivo van Dongen
edaa002c3c
[core] current scheduler
...
- Adds a way to set the current scheduler on the thread to be used whenever a mailbox is created that needs to reply on this thread
2017-08-09 12:08:21 +03:00
Ivo van Dongen
68f470fdda
[core] make actor self reference optional - again
...
- uses a different method of constructor selection that also works on Apple clang < 8.2.
2017-08-08 11:36:30 +03:00
Thiago Marcos P. Santos
2dd8ec8854
[core] Removed unused constructor
...
Not in use at the moment, was causing a compiler error on
Apple LLVM version 8.0.0 (clang-800.0.42.1).
```
src/mbgl/sprite/sprite_loader.cpp:25:11: error: call to constructor of
'Actor<mbgl::SpriteLoaderWorker>' is ambiguous
```
2017-08-07 18:48:42 +03:00
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