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 3D14919E0002 for ; Wed, 16 Dec 2015 08:15:20 +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 78A6CB5D901 for ; Wed, 16 Dec 2015 08:47:21 +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 9A07118CC7CC for ; Wed, 16 Dec 2015 08:47:21 +0900 (JST) Received: from [221.186.184.76] (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id B034F1204E8; Wed, 16 Dec 2015 08:47:20 +0900 (JST) X-Original-To: ruby-core@ruby-lang.org Delivered-To: ruby-core@ruby-lang.org Received: from o2.heroku.sendgrid.net (o2.heroku.sendgrid.net [67.228.50.55]) by neon.ruby-lang.org (Postfix) with ESMTPS id B0FAB1204D8 for ; Wed, 16 Dec 2015 08:47:16 +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=GA3c7u42cZXytkN6+rT74vlauyc=; b=AI6X4tFJY1wEbXG7Pp M6IpaSxvHVSgOAri+5dq2FXz4VRK3LwtcOWEMSjtkVf84L6LOkFfEsbVb37kjfBo 9eq2alJg4CG2csBDKnfPfYZem8y9enRVil2gHrMWqSJmsjtDqN3SAMXldcVFdeSA g/a+Lvik979XbWqb0BYW5uiuQ= Received: by filter0043p1las1.sendgrid.net with SMTP id filter0043p1las1.1527.5670A67D43 2015-12-15 23:47:09.579553332 +0000 UTC Received: from herokuapp.com (ec2-23-20-192-93.compute-1.amazonaws.com [23.20.192.93]) by ismtpd0006p1iad1.sendgrid.net (SG) with ESMTP id 2PgncGjdTU23Ri14suFjxQ for ; Tue, 15 Dec 2015 23:47:09.686 +0000 (UTC) Date: Tue, 15 Dec 2015 23:47:09 +0000 From: ko1@atdot.net 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: 46873 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 11822 X-Redmine-Issue-Author: headius 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/Ymy4QrNMhiuLXJG8OTL2vJD1yS5qOtNvPJRqydpN2FIjWcXPr2EjFaNsAhx8ui 9XGSZqdrsDlpLmYdsMszpuCQ/xdgxosMM2kJ7NkLZJtaHsxbBqNsxgXZHwnYd0UKFWGn+g6oiqDge5 3q3PGK6j2kHCRGNC09zjb+UsK8vHzhokCF+A X-ML-Name: ruby-core X-Mail-Count: 72164 Subject: [ruby-core:72164] [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 Koichi Sasada. Description updated ---------------------------------------- Bug #11822: Semantics of Queue#pop after close are wrong https://bugs.ruby-lang.org/issues/11822#change-55575 * Author: Charles Nutter * Status: Open * Priority: Normal * Assignee: * 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/