Commit Graph

7 Commits

Author SHA1 Message Date
Zachary Anderson 18929970a0 Fixes for OSThread creation shutdown race.
Also, backs out bad change to the thread pool. The real fix is to
move the disable of OSThread creation until after the thread pool
shuts down.

R=asiva@google.com

Review URL: https://codereview.chromium.org/1557033002 .
2016-01-04 15:22:02 -08:00
Zachary Anderson a6818de006 Thread fixes for shutdown.
- Don't disable thread creation until isolates have shutdown.
- A thread-pool thread may try to start up after thread creation has
  been disabled. We must reap the Worker objects for these threads.
- A thread may try to start up after OSThread::thread_list_lock_ has
  been destroyed. Detect this.

R=asiva@google.com

Review URL: https://codereview.chromium.org/1555643002 .
2015-12-30 15:01:33 -08:00
Siva Annamalai b40775549f Fix for issue 25236
- Ensure that no new OSThreads are created once the VM is in shutdown mode
- Do not query thread_list_head_ without a lock (this leads to the race which causes two threads to delete the lock and TLS at the same time)

BUG=25236
R=zra@google.com

Review URL: https://codereview.chromium.org/1537543002 .
2015-12-18 10:16:28 -08:00
Florian Schneider 59fd6c8397 VM: Small clean up and const-ness fix for Thread/OSThread constants.
BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org/1482243006 .
2015-12-02 12:30:12 +01:00
Zachary Anderson 618d4ee9b7 Thread and Timeline fixes for Mojo.
Creates an OSThread in OSThread::Current() if a thread doesn't
already have one.

Also removes the setup of an unneeded StackZone from a Timeline API
function.

BUG=

Review URL: https://codereview.chromium.org/1483113002 .
2015-12-01 10:52:19 -08:00
Siva Annamalai 569b3f77ee Copy the passed in name string into the os_thread structure and delete it in the destructor.
R=iposva@google.com

Review URL: https://codereview.chromium.org/1475863002 .
2015-11-25 09:23:08 -08:00
Siva Annamalai 9e19d236ca - Add an OSThread structure which is the generic TLS structure for all C++
fields in a thread (i.e fields that are not Dart VM related)
- Split the Thread structure to be a pure Dart per thread structure and add
  a pointer to os_thread which points to the OSThread structure
- Change Schedule/UnSchedule to set the Dart Thread structure as the TLS of
  the thread when it is inside the Dart world and reset the TLS back to the
  OSThread strcuture when is exits the Dart World.
- Moved the stack_base and few stack size related functions to OSThread from Isolate

R=johnmccutchan@google.com, zra@google.com

Review URL: https://codereview.chromium.org/1439483003 .
2015-11-19 13:45:10 -08:00