Project

General

Profile

Bug #10667

thread_variable_set/get doesn't work for dynamically created symbols

Added by drkaes (Stefan Kaes) almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
ruby -v:
ruby 2.2.0p1 (2014-12-26 revision 49031) [x86_64-darwin13]
[ruby-core:67185]

Description

Adding the following test to thread_test.rb shows the problem:

def test_thread_variables_work_for_dynamically_created_symbols
  t = Thread.new {}.join
  key_str = "foo#{rand}"
  key_sym = key_str.to_sym
  t.thread_variable_set(key_sym, "bar")
  assert_equal "bar", t.thread_variable_get(key_str)
  assert_equal "bar", t.thread_variable_get(key_sym)
end

Test output:

[15045/15894] TestThread#test_thread_variables_work_for_dynamically_created_symbols = 0.00        
  1) Failure:
TestThread#test_thread_variables_work_for_dynamically_created_symbols [/Users/stefan.kaes/src/ruby/test/ruby/test_thread.rb:94]:
<"bar"> expected but was
<nil>.

Associated revisions

Revision 401c8bb0
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

thread.c: fix dynamic symbol keys

  • 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

Revision 49055
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

thread.c: fix dynamic symbol keys

  • 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]

Revision 49055
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

thread.c: fix dynamic symbol keys

  • 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]

Revision 49055
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

thread.c: fix dynamic symbol keys

  • 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]

Revision 49055
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

thread.c: fix dynamic symbol keys

  • 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]

Revision 49055
Added by nobu (Nobuyoshi Nakada) almost 5 years ago

thread.c: fix dynamic symbol keys

  • 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]

Revision eb076140
Added by naruse (Yui NARUSE) almost 5 years ago

merge revision(s) 49055: [Backport #10667]

    * 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/branches/ruby_2_2@49125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 49125
Added by naruse (Yui NARUSE) almost 5 years ago

merge revision(s) 49055: [Backport #10667]

* 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]

History

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago

  • Description updated (diff)
  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r49055.


thread.c: fix dynamic symbol keys

  • 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]

Updated by naruse (Yui NARUSE) almost 5 years ago

  • Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE

ruby_2_2 r49125 merged revision(s) 49055.

Also available in: Atom PDF