We only have one global Sampler, gSampler, and so SamplerRegistry is just an
unnecessary and obfuscating wrapper around it.
--HG--
extra : rebase_source : b675c414d0081dab2cd7dac864ffdff5070afe7d
StaticMutexes don't need to be created or destroyed, which avoids the need for
checking if they still exist.
This patch also adds locking to a few functions that lacked it. Every access to
sRegisteredThreads is now protected appropriately.
--HG--
extra : rebase_source : 2ea1d7372652ddd532e6e98c167be0997df33f07
Sampler::sRegisteredThreadsMutex is public. Might as well make
Sampler::sRegisteredThreads public too. This allows the getter to be removed,
and makes the code a little easier to read.
--HG--
extra : rebase_source : 4ff3ba92c9d74ae1b10a2be227ca15f61d15bee2
IdleRequestExecutor::MaybeDispatch needs to handle the case when
mWindow is null, due to IdleRequestExecutor::Cancel setting mWindow to
nullptr.
MozReview-Commit-ID: F2Up5mItkqN
This update is mostly because the upstream implementation is now free of
the gnarly, XP-required implementation of condition variables and
updating both the posix and windows implementations at the same time
seemed easier.
This merge commit joins a Mercurial conversion of the Servo Git
repository with the mainline of the Firefox repository.
The converted Git history was obtained by running the following command
on revision e0c5a75dfaa6a9f8d23daa54438e987554cafe82 of the
version-control-tools repository:
$ linearize-git-to-hg \
--exclude-dir src/test/wpt \
--exclude-dir src/test/ref \
--exclude-dir tests/ref \
--exclude-dir tests/wpt \
--summary-prefix servo: \
--remove-reviewable \
--source-repo-key Source-Repo \
--source-revision-key Source-Revision \
--normalize-github-merge-message \
--committer-action use-author \
--use-p2-author \
--with-hg ~/bin/hg \
--copy-similarity 75 \
--find-copies-harder \
--skip-submodules \
--move-to-subdir servo \
--github-username <redacted> \
--github-token <redacted> \
https://github.com/servo/servo master servo-git-source servo-hg-dest
This command obtained a clone of the Servo Git repo and converted it to
Mercurial. Along the way, it:
* Collapsed all commits in merge commits into a single squashed commit,
producing a linear history
* excluded WPT files (because there are tens of thousands of them)
* excluded "ref" tests (because they aren't wanted)
* prefixed commit message summary line with "servo:"
* removed reviewable.io text from commit messages
* added links to the original repo and revision in the commit message
* rewrote commit messages so pull request messages are consistently
formatted
* replaced the Git "committer" with the "author" so they always agree
* used the author of the 2nd parent of a merge commit as the author of
the "squashed" commit
* reparented all files into a "servo" subdirectory
* applied aggressive copy detection (find copies by looking at files
that didn't change)
* marked copies if contents were at least 75% similar
The result of that conversion was pulled into the Firefox repo with
`hg pull --force` (--force was needed to allow a new root changeset).
Then, this head was merged into the mainline by running
`hg merge -t :remote`. A merge tool was specified because there was
an existing dummy geckoservo crate defined, which we wanted to overwrite
with the real thing.
The Mercurial version used was 4.1 (4.1 is necessary because of new
features in `hg convert`).
IGNORE BAD COMMIT MESSAGES (to bypass commit message hook)
a=release (to bypass WebIDL hook)
MozReview-Commit-ID: LSQNMdsZmee
--HG--
extra : rebase_source : 067cb266da2fc64e1cbf0a460be98889232fca67
I want to get Servo vendored into servo/. The previous plan was to
replace the dummy geckolib with the real deal when the vendoring is
done. Unfortunately, this will require a significant `cargo vendor`
change, which we want to punt on for a bit.
So, this commit moves our dummy geckolib outside of servo/ so we
don't need to `cargo update` or `cargo vendor` when the real servo/
is installed.
The change to toolkit/library/rust/shared/Cargo.toml can be reverted
in the stylo repo to allow it to use the real geckolib.
We also update the taskgraph code for detecting Servo. Previously,
it looked for a file in the possibly-vendored servo/ directory. Once
the vendoring happens, this check will always pass. But without the
real geckolib, the Servo builds will fail. So, we change the check
to look for the real geckolib. This is implemented a bit hackily.
But it will be short-lived until we run `cargo vendor`.
MozReview-Commit-ID: CxGTwy6bK9j
--HG--
rename : servo/ports/geckolib/Cargo.toml => toolkit/library/geckolib/Cargo.toml
rename : servo/ports/geckolib/lib.rs => toolkit/library/geckolib/lib.rs
extra : rebase_source : c0e9c867ae74c4eb124e72dc481fd8dc814e65e7