[#78949] [Ruby trunk Feature#13095] [PATCH] io.c (rb_f_syscall): remove deprecation notice — kosaki.motohiro@...
Issue #13095 has been updated by Motohiro KOSAKI.
3 messages
2017/01/03
[#78997] [Ruby trunk Bug#13110] Byte-based operations for String — shugo@...
Issue #13110 has been updated by Shugo Maeda.
3 messages
2017/01/06
[#79228] Re: [ruby-cvs:64576] naruse:r57410 (trunk): Prevent GC by volatile [Bug #13150] — Eric Wong <normalperson@...>
naruse@ruby-lang.org wrote:
5 messages
2017/01/23
[#79511] Re: [ruby-cvs:64576] naruse:r57410 (trunk): Prevent GC by volatile [Bug #13150]
— Eric Wong <normalperson@...>
2017/02/13
Eric Wong <normalperson@yhbt.net> wrote:
[#79518] Re: [ruby-cvs:64576] naruse:r57410 (trunk): Prevent GC by volatile [Bug #13150]
— Nobuyoshi Nakada <nobu@...>
2017/02/13
On 2017/02/13 10:04, Eric Wong wrote:
[#79298] [Ruby trunk Bug#13085][Assigned] io.c io_fwrite creates garbage — nobu@...
Issue #13085 has been updated by Nobuyoshi Nakada.
3 messages
2017/01/29
[#79337] Re: [ruby-changes:45397] normal:r57469 (trunk): io.c: recycle garbage on write — SASADA Koichi <ko1@...>
Eric:
4 messages
2017/01/31
[#79352] Re: [ruby-changes:45397] normal:r57469 (trunk): io.c: recycle garbage on write
— Eric Wong <normalperson@...>
2017/01/31
SASADA Koichi <ko1@atdot.net> wrote:
[ruby-core:79267] [Ruby trunk Bug#12688][Feedback] Thread unsafety in autoload
From:
ko1@...
Date:
2017-01-26 10:38:40 UTC
List:
ruby-core #79267
Issue #12688 has been updated by Koichi Sasada.
Status changed from Assigned to Feedback
I can't reproduce headius's issue. It shows 50 dots and stop at next iteration because autoload is failed.
Inserting `$".pop` Shirosaki san suggested, I don't get any exception.
I tried on current trunk.
```
$LOAD_PATH.unshift __dir__
Thread.abort_on_exception = true
loop do
class Foo
autoload :Bar, 'bar.rb'
end
go = false
threads = (1..50).map {Thread.new { 1 until go; Foo.const_get(:Bar); print '!' }}
go = true
threads.each(&:join)
puts
self.class.send :remove_const, :Foo
$".pop
end
```
----------------------------------------
Bug #12688: Thread unsafety in autoload
https://bugs.ruby-lang.org/issues/12688#change-62685
* Author: Charles Nutter
* Status: Feedback
* Priority: Normal
* Assignee: Koichi Sasada
* Target version:
* ruby -v: 2.3.0
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
I need clarification here. I expected, based on Ruby's assertion that autoloads are thread-safe, that the following code would never error. Instead, it gets a couple iterations in and raises NameError:
```ruby
loop do
class Foo
autoload :Bar, 'bar.rb'
end
go = false
threads = (1..50).map {Thread.new { 1 until go; print '.'; Foo.const_get(:Bar) }}
go = true
threads.each(&:join)
puts
self.class.send :remove_const, :Foo
end
```
And the output with Ruby 2.3.0:
```
$ ruby23 -I. autoload_breaker.rb
..................................................
..................................................autoload_breaker.rb:7:in `const_get': uninitialized constant Foo::Bar (NameError)
Did you mean? Foo::Bar
from autoload_breaker.rb:7:in `block (3 levels) in <main>'
```
Is there something wrong with my script? Is my expectation incorrect?
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>