[parrot/parrot] 87c6d5: Parrot's Test::More is not ready for threads (writ...

GitHub noreply at github.com
Sun Mar 25 09:08:54 UTC 2012


  Branch: refs/heads/threads
  Home:   https://github.com/parrot/parrot
  Commit: 87c6d52c32496dd63440e805c3bf7d657e7dcc88
      https://github.com/parrot/parrot/commit/87c6d52c32496dd63440e805c3bf7d657e7dcc88
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2012-03-24 (Sat, 24 Mar 2012)

  Changed paths:
    M t/pmc/task.t

  Log Message:
  -----------
  Parrot's Test::More is not ready for threads (writes to shared data)


  Commit: cd053dcaa87aedb386cee6677b32b6c21be15931
      https://github.com/parrot/parrot/commit/cd053dcaa87aedb386cee6677b32b6c21be15931
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2012-03-24 (Sat, 24 Mar 2012)

  Changed paths:
    M config/gen/makefiles/root.in
  M src/pmc.c

  Log Message:
  -----------
  Fix Parrot_pmc_get_type_str when the class hash is a Proxy


  Commit: fdb60a5f50b4be890ca0607125951e6a9d9350f1
      https://github.com/parrot/parrot/commit/fdb60a5f50b4be890ca0607125951e6a9d9350f1
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2012-03-24 (Sat, 24 Mar 2012)

  Changed paths:
    M src/thread.c

  Log Message:
  -----------
  Don't create proxies for PMCNULL


  Commit: 65e27042d9b5f7fe6ca1bfbb61a74065a993711e
      https://github.com/parrot/parrot/commit/65e27042d9b5f7fe6ca1bfbb61a74065a993711e
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2012-03-25 (Sun, 25 Mar 2012)

  Changed paths:
    M examples/threads/chameneos.pir
  M src/ops/core_ops.c
  M src/ops/experimental.ops
  M src/pmc/scheduler.pmc
  M src/pmc/task.pmc
  M src/scheduler.c
  M src/thread.c
  M t/src/threads.t

  Log Message:
  -----------
  Fix the wait op for threads

A task scheduled on another thread will get cloned to be local to this
thread. The two task objects are then linked by a "partner" pointer. To
wait for a task of another thread one now only has to add the current
task to the waiter list of the original task object.

A task will schedule its waiters when it is done and now will also see
if the partner task has any waiters and schedule them on the partner's
interp.

In addition the main thread will now no longer exit as long as tasks on
other threads are running (an explicit exit op does still work however).
The main thread's tasks could still be waiting for other tasks to
finish.


Compare: https://github.com/parrot/parrot/compare/3b5ee3c...65e2704


More information about the parrot-commits mailing list