summaryrefslogtreecommitdiffstats
path: root/test/039-join-main/src/Main.java
blob: 0644f1c434aad8693c482d0db37fbbf2f94ed6d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright 2007 The Android Open Source Project

/**
 * Make sure that a sub-thread can join the main thread.
 */
public class Main {
    public static void main(String[] args) {
        Thread t;

        t = new Thread(new JoinMainSub(Thread.currentThread()), "Joiner");
        System.out.print("Starting thread '" + t.getName() + "'\n");
        t.start();

        try { Thread.sleep(1000); }
        catch (InterruptedException ie) {}

        System.out.print("JoinMain starter returning\n");
    }
}

class JoinMainSub implements Runnable {
    private Thread mJoinMe;

    public JoinMainSub(Thread joinMe) {
        mJoinMe = joinMe;
    }

    public void run() {
        System.out.print("@ JoinMainSub running\n");

        try {
            mJoinMe.join();
            System.out.print("@ JoinMainSub successfully joined main\n");
        } catch (InterruptedException ie) {
            System.out.print("@ JoinMainSub interrupted!\n");
        }
        finally {
            System.out.print("@ JoinMainSub bailing\n");
        }
    }
}