01: /*
02: *
03: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
04: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU General Public License version
08: * 2 only, as published by the Free Software Foundation.
09: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * General Public License version 2 for more details (a copy is
14: * included at /legal/license.txt).
15: *
16: * You should have received a copy of the GNU General Public License
17: * version 2 along with this work; if not, write to the Free Software
18: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA
20: *
21: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
22: * Clara, CA 95054 or visit www.sun.com if you need additional
23: * information or have any questions.
24: */
25:
26: package sun.awt.pocketpc;
27:
28: /** The thread which is run when the system is shutting down. */
29:
30: class ShutdownHook extends Thread {
31: public ShutdownHook(Thread mainThread, FlushThread flushThread) {
32: this .mainThread = mainThread;
33: this .flushThread = flushThread;
34: }
35:
36: public void run() {
37: // Ask the flush thread to finish
38:
39: flushThread.interrupt();
40:
41: // Ask the main gtk event processing thread to finish
42:
43: winceMainQuit();
44:
45: // Wait for both threads to complete
46:
47: try {
48: mainThread.join(2000);
49: flushThread.join(2000);
50: } catch (InterruptedException e) {
51: }
52: }
53:
54: private native void winceMainQuit();
55:
56: private Thread mainThread;
57: private FlushThread flushThread;
58: }
|