Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: netscape/javascript/JSRunnable.java


1   /* -*- Mode: Java; tab-width: 8; c-basic-offset: 4 -*-
2    *
3    * The contents of this file are subject to the Netscape Public
4    * License Version 1.1 (the "License"); you may not use this file
5    * except in compliance with the License. You may obtain a copy of
6    * the License at http://www.mozilla.org/NPL/
7    *
8    * Software distributed under the License is distributed on an "AS
9    * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10   * implied. See the License for the specific language governing
11   * rights and limitations under the License.
12   *
13   * The Original Code is Mozilla Communicator client code, released
14   * March 31, 1998.
15   *
16   * The Initial Developer of the Original Code is Netscape
17   * Communications Corporation.  Portions created by Netscape are
18   * Copyright (C) 1998 Netscape Communications Corporation. All
19   * Rights Reserved.
20   *
21   * Contributor(s): 
22   *
23   * Alternatively, the contents of this file may be used under the
24   * terms of the GNU Public License (the "GPL"), in which case the
25   * provisions of the GPL are applicable instead of those above.
26   * If you wish to allow use of your version of this file only
27   * under the terms of the GPL and not to allow others to use your
28   * version of this file under the NPL, indicate your decision by
29   * deleting the provisions above and replace them with the notice
30   * and other provisions required by the GPL.  If you do not delete
31   * the provisions above, a recipient may use your version of this
32   * file under either the NPL or the GPL.
33   */
34  
35  package netscape.javascript;
36  
37  /**
38   * Runs a JavaScript object with a run() method in a separate thread.
39   */
40  public class JSRunnable implements Runnable {
41    private JSObject runnable;
42  
43    public JSRunnable(JSObject runnable) {
44      this.runnable = runnable;
45      synchronized(this) {
46        new Thread(this).start();
47        try {
48          this.wait();
49        } catch (InterruptedException ie) {
50        }
51      }
52    }
53    
54    public void run() {
55      try {
56        runnable.call("run", null);
57        synchronized(this) {
58          notifyAll();
59        }
60      } catch (Throwable t) {
61        System.err.println(t);
62        t.printStackTrace(System.err);
63      }
64    }
65  }