gecko-dev/ipc
Nika Layzell f5d6df8915 Bug 1792474 - Part 4: Avoid the IO thread hop when sending IPC messages, r=ipc-reviewers,jld
This involves some changes to IPC::Channel::ChannelImpl on all platforms in
order to ensure that they are threadsafe.

1. The ChannelImpl is now internally refcounted, making the correctness
   of parts of its lifecycle more clear.
2. Members of the channel are all annotated with `MOZ_GUARDED_BY` for either
   the `io_thread_` or `mutex_` depending on if they are required in order to
   send a message. This gives us some static checks that we won't deadlock.
3. The `closed_` field is removed, as thanks to the mutex, `pipe_` can now be
   checked directly from any thread instead. This reduces the risk of
   forgetting to update `closed_`.
4. `NodeChannel` now calls `Send()` without dispatching, which also required
   updating some other members to also be accessible from any thread, including
   changes to allow asynchronously reporting a channel error when `Send()`
   fails.
5. The Windows handling for `Connect()` was made more thread-safe to queue
   calls to `Send()` performed before `Connect()` returns. The posix
   `Connect()` handler already did this.

Differential Revision: https://phabricator.services.mozilla.com/D158162
2022-10-07 01:51:29 +00:00
..
app Bug 1782199: Unregister the WER runtime module before returning from main. r=gsvelto 2022-08-08 12:05:00 +00:00
chromium Bug 1792474 - Part 4: Avoid the IO thread hop when sending IPC messages, r=ipc-reviewers,jld 2022-10-07 01:51:29 +00:00
contentproc
docs Bug 1779792 - Part 3: Use an endpoint to bind the initial actor in parent processes, r=ipc-reviewers,necko-reviewers,media-playback-reviewers,alwu,mccr8 2022-08-10 14:55:22 +00:00
glue Bug 1792474 - Part 4: Avoid the IO thread hop when sending IPC messages, r=ipc-reviewers,jld 2022-10-07 01:51:29 +00:00
gtest Bug 1790614 - Part 2: Use {ASSERT,ENSURE}_NS_{SUCCEEEDED,FAILED} in gtests, r=ahal,necko-reviewers 2022-09-15 14:51:50 +00:00
ipdl Backed out 3 changesets (bug 1790872) for causing bc failures in toolkit/components/processtools/tests/browser/browser_test_powerMetrics.js CLOSED TREE 2022-10-04 00:13:12 +03:00
mscom Bug 1784812 - Use common JSONWriteFuncs when writing to a string - r=canaltinova,media-playback-reviewers,alwu 2022-08-17 07:07:54 +00:00
testshell Bug 1782008 - Remove now unnecessary .eslintrc.js files. r=webcompat-reviewers,extension-reviewers,media-playback-reviewers,pip-reviewers,denschub,rpl,alwu,mossop 2022-08-03 11:16:20 +00:00
moz.build Bug 1696382: Add IPC in-tree docs r=nika,gerard-majax,ipc-reviewers 2022-01-13 00:10:20 +00:00
pull-chromium.py