Fix build failure in inf-ptrace.c.
[binutils-gdb.git] / gold / workqueue.h
index 5f2137e46acd0d7a961c7e527772a016999a38a2..75452241d80515f3d3dc6f2eff810c4ad25cf91c 100644 (file)
@@ -1,6 +1,6 @@
 // workqueue.h -- the work queue for gold   -*- C++ -*-
 
-// Copyright 2006, 2007 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -205,10 +205,16 @@ class Workqueue
   void
   queue(Task*);
 
-  // Add a new task to the front of the work queue.  It will be the
-  // next task to run if it is ready.
+  // Add a new task to the work queue which should run soon.  If the
+  // task is ready, it will be run before any tasks added using
+  // queue().
   void
-  queue_front(Task*);
+  queue_soon(Task*);
+
+  // Add a new task to the work queue which should run next if it is
+  // ready.
+  void
+  queue_next(Task*);
 
   // Process all the tasks on the work queue.  This function runs
   // until all tasks have completed.  The argument is the thread
@@ -221,6 +227,12 @@ class Workqueue
   void
   set_thread_count(int);
 
+  // Add a new blocker to an existing Task_token. This must be done
+  // with the workqueue lock held.  This should not be done routinely,
+  // only in special circumstances.
+  void
+  add_blocker(Task_token*);
+
  private:
   // This class can not be copied.
   Workqueue(const Workqueue&);
@@ -228,7 +240,7 @@ class Workqueue
 
   // Add a task to a queue.
   void
-  add_to_queue(Task_list* queue, Task* t);
+  add_to_queue(Task_list* queue, Task* t, bool front);
 
   // Find a runnable task, or wait for one.
   Task*