From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17113 invoked by alias); 14 Oct 2003 12:37:58 -0000 Mailing-List: contact mauve-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: mauve-discuss-owner@sources.redhat.com Received: (qmail 17105 invoked from network); 14 Oct 2003 12:37:57 -0000 Received: from unknown (HELO ms-smtp-02-eri0.southeast.rr.com) (24.93.67.83) by sources.redhat.com with SMTP; 14 Oct 2003 12:37:57 -0000 Received: from lyta.haphazard.org (rdu57-9-048.nc.rr.com [66.57.9.48]) by ms-smtp-02-eri0.southeast.rr.com (8.12.10/8.12.7) with ESMTP id h9ECbu9j016090; Tue, 14 Oct 2003 08:37:56 -0400 (EDT) Received: by lyta.haphazard.org (Postfix, from userid 500) id 9B924BE641; Tue, 14 Oct 2003 08:31:49 -0400 (EDT) To: Patrick Ellis Cc: mauve-discuss@sources.redhat.com Subject: Re: Question about Thread.sleep(1000) in java.io.PipedStream close.java code References: From: Brian Jones Date: Tue, 14 Oct 2003 12:37:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-q4/txt/msg00000.txt.bz2 Patrick Ellis writes: > I have a question about the Thread.sleep(1000) command in the > close.java code. The delay does not seem long enough On an R64 > machine that I'm testing. When I change the code to > Thread.sleep(100) the code seems to delay long enough for execute > the code. Is this correct ? I think the sleep mechanism can be replaced by a wait in the test thread and a notify in the main thread. On the whole, I don't understand why lowering the sleep value to 100 from 1000 milliseconds would help. Brian > > 1 // Tags: JDK1.0 > 2 > 3 // This test is from Jeff Sturm. > 4 // It tests whether close() on a PipedInputStream will correctly > 5 // notify the writer. > 6 > 7 package gnu.testlet.java.io.PipedStream; > 8 > 9 import gnu.testlet.Testlet; > 10 import gnu.testlet.TestHarness; > 11 import java.io.*; > 12 > 13 public class close implements Runnable, Testlet { > 14 Thread main; > 15 PipedInputStream in; > 16 PipedOutputStream out; > 17 TestHarness harness; > 18 > 19 public void run() { > 20 try { > 21 Thread.sleep(1000); > 22 harness.debug("Closing pipe input stream:"); > 23 in.close(); > 24 Thread.sleep(1000); > 25 harness.debug("Interrupting pipe reader:"); > 26 main.interrupt(); > 27 } catch (Throwable t) { > 28 harness.debug(t); > 29 } > 30 } > 31 > 32 public void test (TestHarness harness) { > 33 int val = 23; > 34 try { > 35 close test = new close(); > 36 test.harness = harness; > 37 > 38 test.main = Thread.currentThread(); > 39 test.out = new PipedOutputStream(); > 40 test.in = new PipedInputStream(test.out); > 41 > 42 (new Thread(test)).start(); > 43 > 44 val = test.in.read(); > 45 } catch (InterruptedIOException t) { > 46 harness.check(true,"read() interrupted okay"); > 47 } catch (IOException t) { > 48 harness.fail("Unexpected IOException thrown"); > 49 } > 50 } > 51 } > > Pat Ellis > SAS Tools, Testing & Validation > Phone: (919) 531-0355 > R2263 Patrick.Ellis@sas.com > SAS... The Power to Know > > -- Brian Jones