[parrot/parrot] b1d066: [GH #893] add test for threaded say, mixup with \n

GitHub noreply at github.com
Thu Jan 10 18:38:03 UTC 2013


  Branch: refs/heads/rurban/threaded-say-gh893
  Home:   https://github.com/parrot/parrot
  Commit: b1d06620885c963b6f017dce1bf36211914697a6
      https://github.com/parrot/parrot/commit/b1d06620885c963b6f017dce1bf36211914697a6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2013-01-10 (Thu, 10 Jan 2013)

  Changed paths:
    M t/op/say.t

  Log Message:
  -----------
  [GH #893] add test for threaded say, mixup with \n

Test that for each say a \n is printed per thread.
Test it on a multi-core machine with

    watch prove -v t/op/say.t


  Commit: 4fff43a7634efa791b075794a07541420b36e297
      https://github.com/parrot/parrot/commit/4fff43a7634efa791b075794a07541420b36e297
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2013-01-10 (Thu, 10 Jan 2013)

  Changed paths:
    M src/ops/core_ops.c
    M src/ops/io.ops

  Log Message:
  -----------
  [GH #893] improve concurrent say. concat with \n, then puts

Provide better atomicity with threads. To avoid mixing strings with
newlines in most cases. This is not foolproof of course.
concat only if it will not extend the already allocated buffer to
avoid copying.
make bootstrap-ops for say


  Commit: d7886d8b0b3ed47f2442863e9f68bc46b41415c0
      https://github.com/parrot/parrot/commit/d7886d8b0b3ed47f2442863e9f68bc46b41415c0
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2013-01-10 (Thu, 10 Jan 2013)

  Changed paths:
    M src/ops/core_ops.c
    M src/ops/io.ops
    M t/op/say.t

  Log Message:
  -----------
  [GH #893] Refactor better atomic say op: test for 80% success, concat if the buflen < 80

Since even SREGs are constant, Parrot_str_concat will always create a copy. So allow small cheap copies.


Compare: https://github.com/parrot/parrot/compare/b1d06620885c^...d7886d8b0b3e


More information about the parrot-commits mailing list