From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: poffice@blade.nagaokaut.ac.jp Delivered-To: poffice@blade.nagaokaut.ac.jp Received: from kankan.nagaokaut.ac.jp (kankan.nagaokaut.ac.jp [133.44.2.24]) by blade.nagaokaut.ac.jp (Postfix) with ESMTP id 2EA9E1B4039B for ; Tue, 31 Jan 2017 15:43:17 +0900 (JST) Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by kankan.nagaokaut.ac.jp (Postfix) with ESMTP id 694DFB5D8E4 for ; Tue, 31 Jan 2017 16:12:32 +0900 (JST) Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by voscc.nagaokaut.ac.jp (Postfix) with ESMTP id C68C318CC818 for ; Tue, 31 Jan 2017 16:12:32 +0900 (JST) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id DEB7E1206DF; Tue, 31 Jan 2017 16:12:31 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from o1678916x28.outbound-mail.sendgrid.net (o1678916x28.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 69EE2120699 for ; Tue, 31 Jan 2017 16:12:28 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=sendgrid.me; h=from:to:references:subject:mime-version:content-type:content-transfer-encoding:list-id; s=smtpapi; bh=t+vqGxlJ4inaN4nYOwGQPpR99eQ=; b=ZZGkMecD9OZ602pf7p DKMMuxQey+uDWcKC2UwCIG/DW5kocGZZqB2hS7LDCeWKXwjvUCtx+Wr6IpLzGVxJ FugEDN0mMIEjlVJFBMgalOlpKh5tfBdF+UlQg5GdlmfhAgNujUw+fzd8X/JZ0CEF Ist+i8D5bP3rh1fV5e6Er/xzY= Received: by filter1095p1mdw1.sendgrid.net with SMTP id filter1095p1mdw1-18012-589038D9-2 2017-01-31 07:12:25.037080149 +0000 UTC Received: from herokuapp.com (ec2-54-196-28-154.compute-1.amazonaws.com [54.196.28.154]) by ismtpd0002p1iad1.sendgrid.net (SG) with ESMTP id hSAmKp28TpO1TyldGqNFgw Tue, 31 Jan 2017 07:12:24.950 +0000 (UTC) Date: Tue, 31 Jan 2017 07:12:24 +0000 From: ko1@atdot.net To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 54267 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 11822 X-Redmine-Issue-Author: headius X-Redmine-Issue-Assignee: ko1 X-Redmine-Sender: ko1 X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: ync6xU2WACa70kv/Ymy4QrNMhiuLXJG8OTL2vJD1yS7Qj9XqwgDkV2ZHdyb/05WIgN7lbyrxYsfrOd ++HYFtjipJrg/uWo0DbPV6VRJF1zGFOWe8kSZ6Dud6UQkZlhzXWEJCz0MYxbJO9iyYj3Pt0ECgwTZ2 6xYjuCfx9ZpT3B+flm1kvNyz3PTfoFgwMi4L X-ML-Name: ruby-core X-Mail-Count: 79334 Subject: [ruby-core:79334] [Ruby trunk Bug#11822][Closed] Semantics of Queue#pop after close are wrong X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #11822 has been updated by Koichi Sasada. Status changed from Open to Closed Now close this issue and please file another ticket if someone need to change it. ---------------------------------------- Bug #11822: Semantics of Queue#pop after close are wrong https://bugs.ruby-lang.org/issues/11822#change-62752 * Author: Charles Nutter * Status: Closed * Priority: Normal * Assignee: Koichi Sasada * Target version: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Current test/ruby/thread/test_queue.rb test_close has the following assertion that seems wrong to me: ```ruby def test_close [->{Queue.new}, ->{SizedQueue.new 3}].each do |qcreate| q = qcreate.call assert_equal false, q.closed? q << :something assert_equal q, q.close assert q.closed? assert_raise_with_message(ClosedQueueError, /closed/){q << :nothing} assert_equal q.pop, :something # <<< THIS ONE assert_nil q.pop assert_nil q.pop # non-blocking assert_raise_with_message(ThreadError, /queue empty/){q.pop(non_block=true)} end end ``` Once a queue is closed, I don't think it should ever return a result anymore. The queue should be cleared and pop should always return nil. In r52691, ko1 states that "deq'ing on closed queue returns nil, always." This test does not match that behavior. -- https://bugs.ruby-lang.org/