Files
mercury/java/runtime/MercuryThread.java
Mark Brown d465fa53cb Update the COPYING.LIB file and references to it.
Discussion of these changes can be found on the Mercury developers
mailing list archives from June 2018.

COPYING.LIB:
    Add a special linking exception to the LGPL.

*:
    Update references to COPYING.LIB.

    Clean up some minor errors that have accumulated in copyright
    messages.
2018-06-09 17:43:12 +10:00

54 lines
1.2 KiB
Java

//
// Copyright (C) 2014, 2018 The Mercury Team
// This file is distributed under the terms specified in COPYING.LIB.
//
package jmercury.runtime;
/**
* A thread with some Mercury specific support.
*/
public abstract class MercuryThread extends Thread
{
private int id;
/**
* Construct a new MercuryThread with the given ID.
* @param name A string that identifies the type of thread.
* @param id A numeric identifier (should be unique).
*/
public MercuryThread(String name, int id)
{
super(name + " " + id);
this.id = id;
}
/**
* The thread has become blocked.
*/
public abstract void blocked();
/**
* The thread is unblocked and is now running again.
*/
public abstract void running();
/**
* If the current thread is a MercuryThread then return a reference to
* it.
*/
public static MercuryThread currentThread()
{
Thread thread;
thread = Thread.currentThread();
if (thread instanceof MercuryThread) {
return (MercuryThread)thread;
} else {
return null;
}
}
}