[parrot/parrot] f6ae12: Merge branch 'master' into threads

noreply at github.com noreply at github.com
Thu Dec 8 12:58:22 UTC 2011


  Branch: refs/heads/threads
  Home:   https://github.com/parrot/parrot

  Commit: f6ae12e535b7a8f0e7616811792eccdda9c44c95
      https://github.com/parrot/parrot/commit/f6ae12e535b7a8f0e7616811792eccdda9c44c95
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2011-12-06 (Tue, 06 Dec 2011)

  Changed paths:
    M compilers/imcc/main.c
  A docs/binaries/parrot-nqp.pod
  A docs/binaries/parrot-prove.pod
  A docs/binaries/parrot_config.pod
  A docs/binaries/parrotbug.pod
  A docs/binaries/pbc_to_exe.pod
  A docs/binaries/plumage.pod
  A docs/binaries/winxed.pod
  M docs/pdds/pdd22_io.pod
  M docs/user/pir/pmcs.pod
  M examples/embed/cotorra.c
  M examples/languages/squaak/src/Squaak/Actions.pm
  M examples/languages/squaak/src/Squaak/Grammar.pm
  M examples/languages/squaak/src/Squaak/Runtime.pm
  M examples/languages/squaak/t/00-sanity.t
  M ext/winxed/compiler.pir
  M frontend/parrot_debugger/main.c
  M frontend/pbc_dump/main.c
  M frontend/pbc_merge/main.c
  M include/parrot/api.h
  M include/parrot/datatypes.h
  M include/parrot/extend.h
  M include/parrot/interpreter.h
  M include/parrot/misc.h
  M include/parrot/namespace.h
  M include/parrot/oplib/core_ops.h
  M include/parrot/oplib/ops.h
  M include/parrot/opsenum.h
  M include/parrot/packfile.h
  M include/parrot/pmc.h
  M include/parrot/runcore_subprof.h
  M src/embed/bytecode.c
  M src/embed/pmc.c
  M src/extend.c
  M src/interp/inter_misc.c
  M src/misc.c
  M src/namespace.c
  M src/nci/libffi.c
  M src/ops/core.ops
  M src/ops/core_ops.c
  M src/ops/experimental.ops
  M src/ops/math.ops
  M src/packfile/api.c
  M src/pmc.c
  M src/pmc/eval.pmc
  M src/pmc/imccompiler.pmc
  M src/pmc/packfile.pmc
  M src/pmc/packfileview.pmc
  M src/pmc/socket.pmc
  M src/pmc/sub.pmc
  M src/pmc/task.pmc
  M src/runcore/subprof.c
  M t/compilers/opsc/06-opsfile.t
  M t/dynpmc/os.t
  M t/op/inf_nan.t
  M t/pmc/iterator.t
  M t/pmc/mappedbytearray.t
  M t/pmc/opcode.t
  M t/src/embed/pmc.t
  M t/src/extend.t
  M t/src/extend_vtable.t

  Log Message:
  -----------
  Merge branch 'master' into threads


  Commit: 9ed2d22c90fa80443514a3931ee308d442137834
      https://github.com/parrot/parrot/commit/9ed2d22c90fa80443514a3931ee308d442137834
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2011-12-08 (Thu, 08 Dec 2011)

  Changed paths:
    M include/parrot/thread.h
  M src/thread.c

  Log Message:
  -----------
  New function Parrot_thread_create_proxy


  Commit: 0cb1f00e2020208bae403f984d483d2879a3a9b5
      https://github.com/parrot/parrot/commit/0cb1f00e2020208bae403f984d483d2879a3a9b5
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2011-12-08 (Thu, 08 Dec 2011)

  Changed paths:
    M src/interp/inter_create.c
  M src/pmc/parrotinterpreter.pmc
  M src/scheduler.c

  Log Message:
  -----------
  Remove obsolete check for parent_interpreter from Parrot_cx_init_scheduler

Every interp needs its own scheduler. So it makes no longer sense to not
create a scheduler in a child interp. This now makes it in theory
possible to run a completely independent interp in another thread by
making clone_interpreter no longer strictly neccessary.


  Commit: 72907aee2869bb29a19d0a6a0b3b9f3a738c7e03
      https://github.com/parrot/parrot/commit/72907aee2869bb29a19d0a6a0b3b9f3a738c7e03
  Author: Stefan Seifert <nine at detonation.org>
  Date:   2011-12-08 (Thu, 08 Dec 2011)

  Changed paths:
    M include/parrot/thread.h
  M src/scheduler.c
  M src/thread.c

  Log Message:
  -----------
  Distribute scheduled tasks onto worker threads

The scheduler now tries to be a little smarter by finding the worker
thread with the lowest task count and scheduling the new task onto this
thread.

The downside is that scheduling a task needs to allocate new PMCs in the
thread interp. To not run into concurrency problems in the GC, the
scheduler locks a mutex while running a task, so the scheduling may have
to wait until the current task is preempted.


Compare: https://github.com/parrot/parrot/compare/5e5d2cd...72907ae


More information about the parrot-commits mailing list