aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_thread.rb
Commit message (Collapse)AuthorAgeFilesLines
* * include/ruby/ruby.h: $SAFE=3 is now obsolete.hsbt2015-06-171-2/+2
| | | | | | | | | | | * ext/socket/init.c, ext/socket/socket.c, ext/socket/tcpsocket.c ext/socket/udpsocket.c, gc.c, object.c, re.c, safe.c: removed code for $SAFE=3 * bootstraptest/test_method.rb, test/erb/test_erb.rb, test/ruby/test_dir.rb test/ruby/test_file.rb, test/ruby/test_method.rb, test/ruby/test_regexp.rb test/ruby/test_thread.rb: remove tests for $SAFE=3 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* sleep thread until assertionsnaruse2015-06-131-1/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h (rb_thread_t): add th->name.naruse2015-06-131-0/+7
| | | | | | | | | | | | | | * vm.c (th_init): initialize th->name. * thread.c (Init_Thread): add Thread.name and Thread.name=. * thread.c (rb_thread_inspect): show thread's name if set. * thread.c (rb_thread_getname): defined. * thread.c (rb_thread_setname): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: class name encodingnobu2015-04-161-0/+13
| | | | | | | * thread.c (thread_s_new): preserve the encoding of the class name in an error message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: fix dynamic symbol keysnobu2014-12-291-0/+10
| | | | | | | | | * thread.c (rb_thread_variable_get): fix dynamic symbol keys. rb_check_id() returns non-zero only for static symbols, whereas thread local variable keys can be dynamic symbols. [ruby-core:67185] [Bug #10667] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/lib/envutil.rb: Moved from test/ruby/.akr2014-11-131-2/+0
| | | | | | | | | | | | | | * test/lib/find_executable.rb: Ditto. * test/lib/memory_status.rb: Ditto. * test/lib/test/unit.rb: require envutil. * test/: Don't require envutil in test files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix a typo.akr2014-09-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: thread for Queuenobu2014-09-221-0/+1
| | | | | | | * test/ruby/test_thread.rb (test_main_thread_status_at_exit): require 'thread' for Queue. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* (test_main_thread_status_at_exit) wait until the thread enter the begin clause. akr2014-09-211-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: let main thread exit from Thread.newnobu2014-08-201-0/+1
| | | | | | | * test/ruby/test_thread.rb (test_main_thread_status_at_exit): let the main thread run to ensure exiting from Thread.new. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: move thread switch testnobu2014-05-281-0/+18
| | | | | | | | | | * test/ruby/test_thread.rb (test_switch_while_busy_loop): move from test/test_timeout.rb. [Bug #1402] * test/test_timeout.rb (test_timeout): no longer related to [Bug #1402]. [Bug #8523] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: preserve encodingnobu2014-05-261-0/+7
| | | | | | | * thread.c (rb_thread_inspect): preserve encoding of the class name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* output more verbose to debugnaruse2014-05-181-2/+3
| | | | | | | following failure insists unexpected condition http://c5664.rubyci.org/~chkbuild/ruby-trunk/log/20140515T133301Z.diff.html.gz git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: stop if forked in a sub-threadnobu2014-05-101-0/+21
| | | | | | | | * thread.c (thread_start_func_2): stop if forked in a sub-thread, the thread has become the main thread. [ruby-core:62070] [Bug #9751] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: run with default handlernobu2014-05-101-1/+3
| | | | | | | | | | * test/ruby/test_thread.rb (test_thread_timer_and_interrupt): run with default handler. * test/ruby/test_thread.rb (test_thread_{join,value}_in_trap): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby: get rid of warnings.usa2014-03-051-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: stop at oncenobu2014-01-161-2/+6
| | | | | | | * test/ruby/test_thread.rb (test_priority): stop both threads at once by a flag. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* suppress warning: SAFE=3 does no sandboxingnaruse2013-12-161-1/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: timing issuesnobu2013-12-141-45/+66
| | | | | | | * test/ruby/test_thread.rb: get rid of timing issues and reduce sleep times. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: assert_operator for comparisonnobu2013-12-141-1/+1
| | | | | | | * test/ruby/test_thread.rb (test_priority): use assert_operator for comparison instead of assert_send. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby: better assertionsnobu2013-12-131-5/+5
| | | | | | * test/ruby: use better assertions instead of mere assert. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c: same hash value for similar constructsnobu2013-12-031-0/+13
| | | | | | | | | * hash.c (rb_hash_recursive): make similar (recursive) constructs return same hash value. execute recursively, and rewind to the topmost frame with an object which .eql? to the recursive object, if recursion is detected. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* should not ignore the rest of recursive constructsnobu2013-11-261-13/+0
| | | | | | | | | | | | | * array.c (rb_ary_hash): should not ignore the rest of recursive constructs. * hash.c (rb_hash_hash): ditto. * range.c (range_hash): ditto. * struct.c (rb_struct_hash): ditto. * test/-ext-/test_recursion.rb (TestRecursion): separate from test/ruby/test_thread.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb (test_thread_join_in_trap):akr2013-11-051-0/+4
| | | | | | | | Run the test in a different process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: use assert_raisenobu2013-10-091-3/+3
| | | | | | * test/ruby, test/-ext-: use assert_raise instead of assert_raises. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: ignore meaningless testnobu2013-10-061-1/+1
| | | | | | | * test/ruby/test_thread.rb (test_blocking_mutex_unlocked_on_fork): ignore meaningless test on platforms where fork() is not supported. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: fix some mutexes remaining locked after forkingnobu2013-10-051-0/+27
| | | | | | | * thread.c (terminate_atfork_i): fix locking mutexes not unlocked in forks when not tracked in thread. [ruby-core:55102] [Bug #8433] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_mutex_unlock): Mutex#unlock no longer raisekosaki2013-09-101-0/+17
| | | | | | an exception even if uses on trap. [Bug #8891] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c, vm_method.c: remove dead code.ktsj2013-08-181-4/+1
| | | | | | | * test/ruby/test_fiber.rb, test/ruby/test_thread.rb: change accordingly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb (test_thread_local_security): Don't createakr2013-06-131-2/+0
| | | | | | | | | an unused thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * safe.c (rb_set_safe_level, safe_setter): raise an ArgumentErrorshugo2013-06-121-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when $SAFE is set to 4. $SAFE=4 is now obsolete. [ruby-core:55222] [Feature #8468] * object.c (rb_obj_untrusted, rb_obj_untrust, rb_obj_trust): Kernel#untrusted?, untrust, and trust are now deprecated. Their behavior is same as tainted?, taint, and untaint, respectively. * include/ruby/ruby.h (OBJ_UNTRUSTED, OBJ_UNTRUST): OBJ_UNTRUSTED() and OBJ_UNTRUST() are aliases of OBJ_TAINTED() and OBJ_TAINT(), respectively. * array.c, class.c, debug.c, dir.c, encoding.c, error.c, eval.c, ext/curses/curses.c, ext/dbm/dbm.c, ext/dl/cfunc.c, ext/dl/cptr.c, ext/dl/dl.c, ext/etc/etc.c, ext/fiddle/fiddle.c, ext/fiddle/pointer.c, ext/gdbm/gdbm.c, ext/readline/readline.c, ext/sdbm/init.c, ext/socket/ancdata.c, ext/socket/basicsocket.c, ext/socket/socket.c, ext/socket/udpsocket.c, ext/stringio/stringio.c, ext/syslog/syslog.c, ext/tk/tcltklib.c, ext/win32ole/win32ole.c, file.c, gc.c, hash.c, io.c, iseq.c, load.c, marshal.c, object.c, proc.c, process.c, random.c, re.c, safe.c, string.c, thread.c, transcode.c, variable.c, vm_insnhelper.c, vm_method.c, vm_trace.c: remove code for $SAFE=4. * test/dl/test_dl2.rb, test/erb/test_erb.rb, test/readline/test_readline.rb, test/readline/test_readline_history.rb, test/ruby/test_alias.rb, test/ruby/test_array.rb, test/ruby/test_dir.rb, test/ruby/test_encoding.rb, test/ruby/test_env.rb, test/ruby/test_eval.rb, test/ruby/test_exception.rb, test/ruby/test_file_exhaustive.rb, test/ruby/test_hash.rb, test/ruby/test_io.rb, test/ruby/test_method.rb, test/ruby/test_module.rb, test/ruby/test_object.rb, test/ruby/test_pack.rb, test/ruby/test_rand.rb, test/ruby/test_regexp.rb, test/ruby/test_settracefunc.rb, test/ruby/test_struct.rb, test/ruby/test_thread.rb, test/ruby/test_time.rb: remove tests for $SAFE=4. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (TestProcess#test_no_curdir): maybe nowusa2013-05-021-6/+3
| | | | | | | | | | we can test it. * test/ruby/test_thread.rb (TestThread#test_thread_timer_and_interrupt): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: Mutex#synchronize no block paramsnobu2013-03-291-0/+5
| | | | | | | | * thread.c (rb_mutex_synchronize_m): yield no block params. patch by splattael (Peter Suschlik) in [ruby-core:53773] [Bug #8097]. fix GH-266. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb: fixed typoayumin2013-02-161-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c: rename methods:ko12012-12-231-24/+24
| | | | | | | | | | | | | | | | | | from Thread.async_interrupt_timing to Thread.handle_interrupt, from Thread.async_interrupted? to Thread.pending_interrupt?. Also rename option from `defer' to `never'. [ruby-core:51074] [ruby-trunk - Feature #6762] * vm_core.c, thread.c: rename functions and data structure `async_errinfo' to `pending_interrupt'. * thread.c: add global variables sym_immediate, sym_on_blocking and sym_never. * cont.c, process.c, vm.c, signal.c: ditto. * lib/sync.rb, lib/thread.rb: catch up this renaming. * test/ruby/test_thread.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38577 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: descriptive assertionsnobu2012-12-211-14/+18
| | | | | | | | * test/ruby/test_thread.rb: (test_local_barrier), (test_status_and_stop_p, test_recursive_outer, test_stack_size): use more descriptive assertions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_thread.rb: flush before SystemStackErrornobu2012-12-211-2/+3
| | | | | | | * test/ruby/test_thread.rb (TestThread#test_stack_size): need to flush before SystemStackError. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38519 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c: support variable VM/Machine stack sizes.ko12012-12-191-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specified by the following environment variaables: - RUBY_THREAD_VM_STACK_SIZE: vm stack size used at thread creation. default: 128KB (32bit CPU) or 256KB (64bit CPU). - RUBY_THREAD_MACHINE_STACK_SIZE: machine stack size used at thread creation. default: 512KB or 1024KB. - RUBY_FIBER_VM_STACK_SIZE: vm stack size used at fiber creation. default: 64KB or 128KB. - RUBY_FIBER_MACHINE_STACK_SIZE: machine stack size used at fiber creation. default: 256KB or 256KB. This values are specified at launched timing. You can not change these values at running time. Environ variables are only *hints* because: - They are aligned to 4KB. - They have minimum values (depend on OSs). - Machine stack settings are ignored by some OSs. Default values especially fiber stack sizes are increased. This change affect Fiber's behavior: (1) You can run more complex program on a Fiber. (2) You can not make many (thousands) Fibers because of lack of address space (on 32bit CPU). If (2) bothers you, (a) Use 64bit CPU with big memory, or (b) Specify RUBY_FIBER_(VM|MACHINE)_STACK_SIZE correctly. You need to choose correct stack size carefully. These values are completely rely on systems (OS/compiler and so on). * vm_core.h (rb_vm_t::default_params): add to record above settings. * vm.c (RubyVM::DEFAULT_PARAMS): add new constant to see above setting. * thread_pthread.c: support RUBY_THREAD_MACHINE_STACK_SIZE. * cont.c: support RUBY_FIBER_(VM|MACHINE)_STACK_SIZE. * test/ruby/test_fiber.rb: add tests for above. * test/ruby/test_thread.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb (test_uninitialized, test_backtrace,kosaki2012-12-141-60/+12
| | | | | | | | | | | | | | | | | test_thread_timer_and_interrupt, test_thread_join_in_trap, test_thread_join_current, test_thread_join_main_thread, test_main_thread_status_at_exit, test_thread_status_in_trap, test_thread_status_raise_after_kill, test_mutex_owned, test_mutex_owned2): move these tests from TestThreadGroup class to TestThread becuase they are not thread group tests. * test/ruby/test_thread.rb (test_thread_status_raise_after_kill): add t.join. * test/ruby/test_threadgroup.rb: new file. moved ThreadGroup test form test_thread.rb. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb (TestThread::Thread::new.): removekosaki2012-12-141-1/+0
| | | | | | | th.abort_on_exception change. Test template shouldn't change global flag. It prevent to test a normal case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test: remove or replace trailing spacesnobu2012-12-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_uninterruptible): helper function for providingkosaki2012-12-051-0/+20
| | | | | | | | | | | | | temporary async_interrupt_timing(Object => :defer) * io.c (rb_f_p): use rb_uninterruptible. * io.c (rb_f_p_internal): helper function for rb_f_p(). * io.c (struct rb_f_p_arg): new struct for rb_f_p_internal. * test/ruby/test_thread.rb (test_async_interrupt_and_p): test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (io_binwrite): check interrupt before io issue.kosaki2012-12-051-0/+20
| | | | | | | * test/ruby/test_thread.rb (test_async_interrupt_and_io): test for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Use underscore-begging name for dummy variables to suppress warningnaruse2012-12-051-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typos and remove trailing spaceskazu2012-12-051-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_thread_s_async_interrupt_timing): have to check ints before ↵tarui2012-12-051-0/+28
| | | | | | | | | | | | jumpping out. * test/ruby/test_thread.rb (test_async_interrupt_with_return): add test rescue has to catch a queued async exception at the time of return. * test/ruby/test_thread.rb (test_async_interrupt_with_break): add test rescue has to catch a queued async exception at the time of break. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb (test_async_interrupt_blocking): bugfixtarui2012-12-041-1/+2
| | | | | | | about defared check git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h (RUBY_VM_CHECK_INTS_BLOCKING): check async queue everytime.tarui2012-12-041-0/+24
| | | | | | | | | | * thread.c (sleep_forever): check RUBY_VM_CHECK_INTS_BLOCKING first. * thread.c (sleep_timeval): ditto. * test/ruby/test_thread.rb (test_async_interrupt_blocking): add a test exceptions are correctly defared and raised on :on_blocking context. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread.c (rb_mutex_owned_p): new method that return currentkosaki2012-12-041-0/+29
| | | | | | | | | thread have the target mutex or not. [Feature #7505] [ruby-dev:46697] * test/ruby/test_thread.rb (test_mutex_owned, test_mutex_owned2): test for the above. * NEWS: new for the above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_thread.rb: move ConditionVariable related testkosaki2012-12-011-168/+0
| | | | | | | | | into test/thread/test_cv.rb. * test/thread/test_cv.rb: new file. * test/thread/test_cv.rb (test_condvar_empty_signal): new tests. * test/thread/test_cv.rb (test_condvar_empty_broadcast): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38111 b2dd03c8-39d4-4d8f-98ff-823fe69b080e