Граф коммитов

37 Коммитов

Автор SHA1 Сообщение Дата
kazu 1eba8ecb66 lib/monitor.rb: prevent to initialize MonitorMixin twice
and allow to initialize again when obj.dup.

Suggested by Benoit Daloze.  [ruby-core:88504] [Feature #15000]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-12-05 09:07:54 +00:00
shugo 6ec1720aa3 lib/monitor.rb: avoid race conditions by Thread.handle_interrupt
Suggested by Benoit Daloze.  [ruby-core:88502] [Bug #14998]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-28 01:51:44 +00:00
shugo 0dfc5918ec revert r65822
Because mon_initialized may be used to re-initialize copied objects intentionally.

mon_initialize_spec.rb fails:

1)
MonitorMixin#mon_initialize can be called in initialize_copy to get a new Mutex and used with synchronize ERROR
ThreadError: already initialized
/home/shugo/src/ruby/lib/monitor.rb:255:in `mon_initialize'
/home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:19:in `initialize_copy'
/home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:28:in `initialize_dup'
/home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:28:in `dup'
/home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:28:in `block (2 levels) in <top (required)>'
/home/shugo/src/ruby/spec/ruby/library/monitor/mon_initialize_spec.rb:4:in `<top (required)>'

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 03:56:51 +00:00
shugo 8d68f422dc lib/monitor.rb: prevent to initialize MonitorMixin twice
Suggested by Benoit Daloze.  [ruby-core:88504] [Feature #15000]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-20 03:01:55 +00:00
kazu 6064132c42 Remove unnecessary `require 'thread'`
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60139 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-08 07:00:01 +00:00
shugo da1b14bcec Add MonitorMinx#mon_locked? and #mon_owned? to check states of objects
Patched by Satoshi "Moris" Tagomori <tagomoris@gmail.com>.  [Fix GH-1699]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-20 01:40:53 +00:00
nobu 4b298ad77a Use qualified names
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-30 06:22:30 +00:00
naruse 3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
shugo 7be5169804 * lib/monitor.rb (mon_try_enter, mon_enter): should reset @mon_count
just in case the previous owner thread dies without mon_exit.
  [fix GH-874] Patch by @chrisberkhout

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-18 04:56:22 +00:00
marcandre 6f64d9eb56 * lib/cgi/core.rb: Use symbols instead of strings for
{const_,instance_variable_}{get,set}. [#7161]

* lib/drb/drb.rb: ditto.

* lib/ipaddr.rb: ditto.

* lib/irb/workspace.rb: ditto.

* lib/monitor.rb: ditto.

* lib/rss/maker/base.rb: ditto.

* lib/rss/rss.rb: ditto.

* lib/xmlrpc/parser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-16 16:55:29 +00:00
nobu 7191ea1049 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-17 22:33:54 +00:00
drbrain 14d0f7aa48 * lib/monitor.rb: Improve documentation. Patch by Sandor Szucs.
[Ruby 1.9 - Bug #4823]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-16 06:09:57 +00:00
drbrain 7bbf2f3085 * lib: Convert tabs to spaces for ruby files per
http://redmine.ruby-lang.org/projects/ruby/wiki/DeveloperHowto#coding-style
	  Patch by Steve Klabnik [Ruby 1.9 - Bug #4730]
	  Patch by Jason Dew [Ruby 1.9 - Feature #4718]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-18 21:19:18 +00:00
shugo 332e8fe51f * lib/monitor.rb (wait): supported timeout.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-06 12:31:52 +00:00
matz a910caecb8 * lib/monitor.rb (MonitorMixin::extend_object): should use
#__send__ instead of #send to avoid possible name conflict.  
  [ruby-core:23907]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-19 22:19:56 +00:00
nobu 287a34ae0d * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
matz 1eee78b876 * eval.c (rb_f_send): allow send/__send__ to call methods of all
visibility again.  we no longer provide __send, __send!.

* eval.c (rb_invoke_method): new method to honor private
  visibility.  if it's invoked in a function call style, it calls
  private methods as well (previous 1.9 send behavior).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-04 20:36:20 +00:00
matz 99ab1fed49 * eval.c (rb_f_send_bang): abandon the name funcall for private
aware method call.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-24 08:15:37 +00:00
shugo 060b631896 * lib/monitor.rb (mon_try_enter): call @mon_muetx.try_lock.
Thanks, Keiju ISHITSUKA. [ruby-dev:30507]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-12 22:24:32 +00:00
shugo 1adef15072 * lib/thread.rb (ConditionVariable#broadcast): use Mutex
instead of Thread.exclusive.

* lib/monitor.rb (MonitorMixin#mon_exit): unset @mon_owner
  before calling Mutex#unlock.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 07:01:18 +00:00
shugo 33a9e63ad9 * lib/monitor.rb: rewritten using Mutex/ConditionVariable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-24 06:15:04 +00:00
ko1 a3e1b1ce7e * Merge YARV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
matz 1378251dc1 * lib/monitor.rb: document patch from Hugh Sasse <hgs at dmu.ac.uk>.
[ruby-core:08205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-13 17:33:04 +00:00
matz 5b014a7427 * bin/erb (ERB::Main::run): typo fixed. [ruby-core:06337]
* env.h: move struct METHOD and struct BLOCK from eval.c to
  support NodeWrap and ParseTree.

* rubysig.h (CHECK_INTS): prevent signal handler to run during
  critical section.  [ruby-core:04039]

* eval.c (load_wait): need not to call rb_thread_schedule()
  explicitly.  [ruby-core:04039]

* eval.c (rb_thread_schedule): clear rb_thread_critical.
  [ruby-core:04039]

* eval.c (rb_obj_instance_exec): create instance_exec and
  module_exec which pass arguments to the block.

* eval.c (rb_f_funcall): rename fcall to funcall to follow
  tradition.

* st.c (st_free_table): do not call free() but xfree().
  [ruby-core:06205]

* eval.c (splat_value): call rb_Array() to convert svalue to
  values.  [ruby-dev:27397]

* lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may
  not be parsed correctly.  A patch from August Z. Flatby
  (augustzf) in [ruby-Patches-2595].  [ruby-core:06183]

* object.c (rb_Array): Array() to raise error for objects without
  to_ary, nor to_a.

* object.c (nil_to_a): revert NilClass#to_a.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-21 09:00:02 +00:00
matz 48653d5ef0 * lib/ostruct.rb: a patch from Florian Gross <florgro@gmail.com>
merged to allow recursive inspect (and to_s) for OpenStruct.
  [ruby-core:05532]

* lib/observer.rb: a patch from nornagon <nornagon@gmail.com>
  merged to allow arbitrary names for update methods.
  [ruby-core:05416]

* eval.c (rb_f_fcall): new method to avoid inefficiency of
  obj.instance_eval{send(...)} tricks.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-05 08:29:52 +00:00
nobu cd5c822ac8 * lib: do not use __send__ to access private methods. [ruby-dev:26935]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-02 14:53:02 +00:00
nobu 92f0be2037 * dln.c, io.c, pack.c, lib/benchmark.rb, lib/cgi.rb, lib/csv.rb,
lib/date.rb, lib/ftools.rb, lib/getoptlong.rb, lib/logger.rb,
  lib/matrix.rb, lib/monitor.rb, lib/set.rb, lib/thwait.rb,
  lib/timeout.rb, lib/yaml.rb, lib/drb/drb.rb, lib/irb/workspace.rb,
  lib/net/ftp.rb, lib/net/http.rb, lib/net/imap.rb, lib/net/pop.rb,
  lib/net/telnet.rb, lib/racc/parser.rb, lib/rinda/rinda.rb,
  lib/rinda/tuplespace.rb, lib/shell/command-processor.rb,
  lib/soap/rpc/soaplet.rb, lib/test/unit/testcase.rb,
  lib/test/unit/testsuite.rb: typo fix.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-04-18 23:19:47 +00:00
shugo 7072d8279d * lib/monitor.rb: use Object#__send__ instead of Object#send.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-04 04:25:10 +00:00
shugo 891fa76825 * lib/monitor.rb: refactored. Thanks, Gennady Bystritsky.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-12 01:15:59 +00:00
shugo ea00e4e454 * lib/monitor.rb (wait): return true on signal/broadcastfalse and
false on timeout. Thanks Gennady Bystritsky.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-10 02:44:49 +00:00
shugo d61ba0cec6 * lib/monitor.rb: revert to the previous revision.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-05 00:15:17 +00:00
shugo 764722dc27 * lib/monitor.rb: handle exceptions correctly. Thanks, Gennady
Bystritsky.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-11 01:20:45 +00:00
gsinclair 99a3e3fdfa Added RDoc comments. Several issues exist: see comments at EOF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-17 14:06:27 +00:00
shugo 619aa50e25 * lib/monitor.rb (wait): fix timeout support.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-04-02 05:27:49 +00:00
shugo 8eeaf69e52 * lib/monitor.rb (wait): ensure reentrance.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-04-02 04:59:43 +00:00
shugo 93868607a2 * lib/monitor.rb: fixed the example code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2001-03-06 09:03:59 +00:00
matz 65a5162550 1.4.0
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1999-08-13 05:45:20 +00:00