gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gold / descriptors.h
index 359008c1f077e8b77a3291ca88c412cdfd6ca1c1..f1c2ad701b584ae241c7f07b0b6209bc07188b39 100644 (file)
@@ -1,6 +1,6 @@
 // descriptors.h -- manage file descriptors for gold   -*- C++ -*-
 
-// Copyright 2008 Free Software Foundation, Inc.
+// Copyright (C) 2008-2020 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
 
 #include <vector>
 
+#include "gold-threads.h"
+
 namespace gold
 {
 
-class Lock;
-
 // This class manages file descriptors for gold.
 
 class Descriptors
@@ -56,11 +56,9 @@ class Descriptors
   void
   release(int descriptor, bool permanent);
 
-  // Claim the file descriptor DESCRIPTOR for a plugin.  This effectively
-  // removes the descriptor from the pool of linker-managed descriptors,
-  // as the plugin will assume responsibility for closing it.
+  // Close all the descriptors open for reading.
   void
-  claim_for_plugin(int descriptor);
+  close_all();
 
  private:
   // Information kept for a descriptor.
@@ -75,8 +73,8 @@ class Descriptors
     bool inuse;
     // Whether this is a write descriptor.
     bool is_write;
-    // Whether the descriptor has been claimed for a plugin.
-    bool is_claimed;
+    // Whether the descriptor is on the stack.
+    bool is_on_stack;
   };
 
   bool
@@ -84,6 +82,8 @@ class Descriptors
 
   // We need to lock before accessing any fields.
   Lock* lock_;
+  // Used to initialize the lock_ field exactly once.
+  Initialize_lock initialize_lock_;
   // Information for descriptors.
   std::vector<Open_descriptor> open_descriptors_;
   // Top of stack.
@@ -109,8 +109,8 @@ release_descriptor(int descriptor, bool permanent)
 { descriptors.release(descriptor, permanent); }
 
 inline void
-claim_descriptor_for_plugin(int descriptor)
-{ descriptors.claim_for_plugin(descriptor); }
+close_all_descriptors()
+{ descriptors.close_all(); }
 
 } // End namespace gold.
 
This page took 0.024152 seconds and 4 git commands to generate.