Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upAdd cow::ReadScope #107
Closed
Add cow::ReadScope #107
Labels
Comments
|
This also prevents writers from using reader pointers since the task key will prevent the writer from instantiating the ReadScope. |
|
No more cow. |
ChrisParis
pushed a commit
to ChrisParis/servo
that referenced
this issue
Sep 7, 2014
Pointer Events: Ported jQuery submission from mercurial.
glennw
added a commit
to glennw/servo
that referenced
this issue
Jan 16, 2017
Unbind WebGL context before creating the frame
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ReadScope will address two unsafe aspects of COW: 1) Handles that exist after the
cow::Scopeis destroyed segfault when used; 2) There is no enforcement of owneship over the aux pointers, leading to races and other badness if they are used from multiple tasks.We will begin assuming that there is only a single writer task and a single reader task (at any given time). Multiple readers are handled with a patient parent solution.
There will be a WriteScope and, at any given time, 0 or 1 ReadScopes. The write scope cannot be destroyed until after the outstanding ReadScope is destroyed, enforced with messages in destructors. A new ReadScope is created every time layout is performed. The existence of a ReadScope takes the place of
reader_forked/reader_joined, eliminating another source of error.To prevent sharing of aux pointers we will do several things: