test/jdk/jdk/jfr/api/consumer/recordingstream/EventProducer.java
author egahlin
Fri, 11 Oct 2019 20:17:18 +0200
branchJEP-349-branch
changeset 58569 5469bde803fe
child 58577 7e0f81f63890
permissions -rw-r--r--
Extract EventProducer and update TestRecursive

package jdk.jfr.api.consumer.recordingstream;

import jdk.jfr.api.consumer.recordingstream.TestStart.StartEvent;

class EventProducer extends Thread {
    private final Object lock = new Object();
    private boolean killed = false;
    public void run() {
        while (true) {
            StartEvent s = new StartEvent();
            s.commit();
            synchronized (lock) {
                try {
                    lock.wait(10);
                    if (killed) {
                        return; // end thread
                    }
                } catch (InterruptedException e) {
                    // ignore
                }
            }
        }
    }
    public void kill()  {
        synchronized (lock) {
            this.killed = true;
            lock.notifyAll();
            try {
                join();
            } catch (InterruptedException e) {
            }
        }
    }
}