From: "jeremyevans0 (Jeremy Evans) via ruby-core" Date: 2023-09-27T00:21:19+00:00 Subject: [ruby-core:114900] [Ruby master Bug#17146] Queue operations are allowed after it is frozen Issue #17146 has been updated by jeremyevans0 (Jeremy Evans). I submitted a pull request to have `{Queue,SizedQueue}#freeze` raise `TypeError`, as `ENV.freeze` does: https://github.com/ruby/ruby/pull/8515 ---------------------------------------- Bug #17146: Queue operations are allowed after it is frozen https://bugs.ruby-lang.org/issues/17146#change-104765 * Author: Eregon (Benoit Daloze) * Status: Open * Priority: Normal * ruby -v: ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- ``` [1] pry(main)> q = Queue.new => # [2] pry(main)> q.freeze => # [3] pry(main)> q << 1 => # [4] pry(main)> q.pop => 1 [5] pry(main)> q.frozen? => true ``` Found by @ko1 in https://bugs.ruby-lang.org/issues/17100#note-28 I think it's a bug, since those are clear mutations. I guess old Thread::Queue implemented in Ruby did not have this bug. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/