- 17 Feb, 2015 3 commits
-
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 16 Feb, 2015 9 commits
-
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 15 Feb, 2015 1 commit
-
-
Dominik Charousset authored
-
- 13 Feb, 2015 5 commits
-
-
Dominik Charousset authored
When forwarding a message, an actor transfers ownership of its current `mailbox_element` to the receiver. Combined with the previous optimization, this means that there is only a single memory allocation for a message from source to destination.
-
Dominik Charousset authored
Whenever an actor calls `send(dest, v1, v2, ...)`, we previously allocated a `mailbox_element` and a `message` object. The `fast_send` optimization joins both objects into a single one using `pair_storage`: ``` pair_storage<mailbox_element, tuple_vals<Ts...>>: /-----------------------------------------------\ | | | /------------\ | | | | intrusive_ptr | intrusive_ptr v v | | +------------+-------------------+---------------------+ | refcount | mailbox_element | tuple_vals<Ts...> | +------------+-------------------+---------------------+ ^ ^ | | unique_ptr<mailbox_element, | detail::disposer> | | | intrusive_ptr<message_data> ``` Since each element in `pair_storage` lives inside a `union`, it is safe to simply call the destructor for each element in `request_deletion`. This is done by extending both types and override `request_deletion` accordingly (see `detail::embedded`). The only additional safety measure we need to take is to make sure to swap the `intrusive_ptr` out of each element *before* calling the destructor. This way, the destruct is guaranteed to be done before we attempt to release the storage.
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 12 Feb, 2015 3 commits
-
-
Matthias Vallentin authored
-
Joseph Noir authored
Fix memory leak in scoped_actor.
-
Jon Siwek authored
-
- 11 Feb, 2015 4 commits
-
-
Marian Triebe authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Marian Triebe authored
Closes #174, closes #156
-
- 10 Feb, 2015 6 commits
-
-
Matthias Vallentin authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 09 Feb, 2015 3 commits
-
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
By moving the cache to the mailbox itself, `mailbox.count()` properly counts *all* messages and `mailbox.empty()` works as expected (as opposed to: is pretty much useless in priority-aware actors).
-
- 04 Feb, 2015 6 commits
-
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-