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 EFDA619E002D for ; Sat, 19 Dec 2015 23:29:24 +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 EB9E6B5D885 for ; Sun, 20 Dec 2015 00:01:34 +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 97C1918CC7B2 for ; Sun, 20 Dec 2015 00:01:35 +0900 (JST) Received: from [221.186.184.76] (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 4FFFF1204AE; Sun, 20 Dec 2015 00:01:34 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from o10.shared.sendgrid.net (o10.shared.sendgrid.net [173.193.132.135]) by neon.ruby-lang.org (Postfix) with ESMTPS id 1AF0512043B for ; Sun, 20 Dec 2015 00:01:30 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.me; h=from:to:references:subject:mime-version:content-type:content-transfer-encoding:list-id; s=smtpapi; bh=CokUmW2HCEKoqQt8CRrqkvE50MY=; b=G2yKzOQppB2aFQ7d6c DcdykAne38kV2GPTLFM6euuo4IPob7z9LqosGVv9vb9RUqSwKoOm2SqTu53jBHzU 9/biSclkxEGfZuMtnLbWJVDHh9Sre4b1VJ7JgAa0hgyDopxjbKlBDsZN3Lt55BAO +dm5Q4AmX6HEcuZ51yRHwxLUY= Received: by filter0563p1mdw1.sendgrid.net with SMTP id filter0563p1mdw1.24357.5675713022 2015-12-19 15:01:04.390553074 +0000 UTC Received: from herokuapp.com (ec2-54-204-163-65.compute-1.amazonaws.com [54.204.163.65]) by ismtpd0001p1iad1.sendgrid.net (SG) with ESMTP id 3Aaltb5dROWCF05n-YZ0Ng Sat, 19 Dec 2015 15:01:04.160 +0000 (UTC) Date: Sat, 19 Dec 2015 15:01:04 +0000 From: email@pitr.ch To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Redmine-MailingListIntegration-Message-Ids: 46978 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 11822 X-Redmine-Issue-Author: headius X-Redmine-Issue-Assignee: ko1 X-Redmine-Sender: pitr.ch 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/Ymy4QrNMhiuLXJG8OTL2vJD1yS7HszKL2W9Smfjjxa4Tn1MT6xTuHM/u5mDiW0 xC66dfnAibQSvemhwTOC6COycROEvNofG1y3ZRC0MOH4VZ2bELINiqN1rX8uLSSdoYHJCsQMLj0eKz nkCRkldCRH6miPnHWwpYxir4Nmmrhrj3jjto X-ML-Name: ruby-core X-Mail-Count: 72383 Subject: [ruby-core:72383] [Ruby trunk - Bug #11822] 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: , Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #11822 has been updated by Petr Chalupa. I like this better to make it configurable per pop operation. ---------------------------------------- Bug #11822: Semantics of Queue#pop after close are wrong https://bugs.ruby-lang.org/issues/11822#change-55672 * Author: Charles Nutter * Status: Open * Priority: Normal * Assignee: Koichi Sasada * 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/