This is the mail archive of the mauve-discuss@sources.redhat.com mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about Thread.sleep(1000) in java.io.PipedStream close.java code


Patrick Ellis <Patrick.Ellis@sas.com> 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 <cbj@gnu.org>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]