Javolution 6.0.0 java
javolution.context.internal.ConcurrentThreadImpl Class Reference
Inheritance diagram for javolution.context.internal.ConcurrentThreadImpl:
[legend]
Collaboration diagram for javolution.context.internal.ConcurrentThreadImpl:
[legend]

Public Member Functions

 ConcurrentThreadImpl ()
 
boolean execute (Runnable logic, ConcurrentContextImpl inContext)
 
void run ()
 

Private Attributes

ConcurrentContextImpl context
 
AtomicBoolean isBusy = new AtomicBoolean()
 
Runnable logic
 
int priority
 

Static Private Attributes

static int count
 

Detailed Description

A worker thread executing in a concurrent context.

Definition at line 20 of file ConcurrentThreadImpl.java.

Constructor & Destructor Documentation

◆ ConcurrentThreadImpl()

javolution.context.internal.ConcurrentThreadImpl.ConcurrentThreadImpl ( )

Default constructor.

Definition at line 31 of file ConcurrentThreadImpl.java.

31  {
32  this.setName("ConcurrentThread-" + ++count);
33  setDaemon(true);
34  }

References javolution.context.internal.ConcurrentThreadImpl.count.

Member Function Documentation

◆ execute()

boolean javolution.context.internal.ConcurrentThreadImpl.execute ( Runnable  logic,
ConcurrentContextImpl  inContext 
)

Executes the specified logic by this thread if ready; returns

false

if this thread is busy.

Definition at line 40 of file ConcurrentThreadImpl.java.

40  {
41  if (!isBusy.compareAndSet(false, true))
42  return false;
43  synchronized (this) {
44  this.priority = Thread.currentThread().getPriority();
45  this.context = inContext;
46  this.logic = logic;
47  this.notify();
48  }
49  return true;
50  }

References javolution.context.internal.ConcurrentThreadImpl.isBusy, and javolution.context.internal.ConcurrentThreadImpl.logic.

◆ run()

void javolution.context.internal.ConcurrentThreadImpl.run ( )

Definition at line 53 of file ConcurrentThreadImpl.java.

53  {
54  while (true) { // Main loop.
55  try {
56  synchronized (this) {
57  while (logic == null) this.wait();
58  }
59  this.setPriority(priority);
60  AbstractContext.inherit(context);
61  logic.run();
62  context.completed(null);
63  } catch (Throwable error) {
64  context.completed(error);
65  }
66  // Clean up.
67  logic = null;
68  context = null;
69  AbstractContext.inherit(null);
70  isBusy.set(false);
71  }
72  }

References javolution.context.internal.ConcurrentContextImpl.completed(), javolution.context.internal.ConcurrentThreadImpl.context, javolution.context.AbstractContext.inherit(), javolution.context.internal.ConcurrentThreadImpl.isBusy, javolution.context.internal.ConcurrentThreadImpl.logic, and javolution.context.internal.ConcurrentThreadImpl.priority.

Here is the call graph for this function:

Member Data Documentation

◆ context

ConcurrentContextImpl javolution.context.internal.ConcurrentThreadImpl.context
private

◆ count

int javolution.context.internal.ConcurrentThreadImpl.count
staticprivate

◆ isBusy

AtomicBoolean javolution.context.internal.ConcurrentThreadImpl.isBusy = new AtomicBoolean()
private

◆ logic

Runnable javolution.context.internal.ConcurrentThreadImpl.logic
private

◆ priority

int javolution.context.internal.ConcurrentThreadImpl.priority
private

The documentation for this class was generated from the following file:
javolution.context.internal.ConcurrentThreadImpl.count
static int count
Definition: ConcurrentThreadImpl.java:22
javolution.context.internal.ConcurrentThreadImpl.priority
int priority
Definition: ConcurrentThreadImpl.java:26
javolution.context.internal.ConcurrentThreadImpl.logic
Runnable logic
Definition: ConcurrentThreadImpl.java:25
javolution.context.internal.ConcurrentThreadImpl.isBusy
AtomicBoolean isBusy
Definition: ConcurrentThreadImpl.java:24
javolution.context.AbstractContext.inherit
static void inherit(AbstractContext ctx)
Definition: AbstractContext.java:131
javolution.context.internal.ConcurrentContextImpl.completed
synchronized void completed(Throwable error)
Definition: ConcurrentContextImpl.java:48
Thread
javolution.context.internal.ConcurrentThreadImpl.context
ConcurrentContextImpl context
Definition: ConcurrentThreadImpl.java:23