Index: libcfa/src/fstream.hfa
===================================================================
--- libcfa/src/fstream.hfa	(revision d0502a3aee721f5f4e468913c7db6c2aab56025c)
+++ libcfa/src/fstream.hfa	(revision d06707edf35d2101302b4f94fdd8182089fc9b22)
@@ -10,11 +10,11 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jun 19 16:29:17 2020
-// Update Count     : 189
+// Last Modified On : Mon Mar  1 22:45:08 2021
+// Update Count     : 217
 //
 
 #pragma once
 
-#include "bits/weakso_locks.hfa"
+#include "bits/weakso_locks.hfa"						// mutex_lock
 #include "iostream.hfa"
 #include <exception.hfa>
@@ -35,5 +35,6 @@
 	char $separator[sepSize];
 	char $tupleSeparator[sepSize];
-//	multiple_acquisition_lock lock;
+	multiple_acquisition_lock $lock;
+	bool $acquired;
 }; // ofstream
 
@@ -71,4 +72,12 @@
 ofstream & write( ofstream &, const char data[], size_t size );
 int fmt( ofstream &, const char format[], ... ) __attribute__(( format(printf, 2, 3) ));
+void acquire( ofstream & os );
+void release( ofstream & os );
+
+struct osacquire {
+	ofstream & os;
+};
+void ?{}( osacquire & acq, ofstream & os );
+void ^?{}( osacquire & acq );
 
 void ?{}( ofstream & os );
@@ -87,4 +96,6 @@
 	void * $file;
 	bool $nlOnOff;
+	multiple_acquisition_lock $lock;
+	bool $acquired;
 }; // ifstream
 
@@ -93,4 +104,5 @@
 void nlOff( ifstream & );
 bool getANL( ifstream & );
+void ends( ifstream & );
 int fail( ifstream & is );
 int eof( ifstream & is );
@@ -101,4 +113,12 @@
 ifstream & ungetc( ifstream & is, char c );
 int fmt( ifstream &, const char format[], ... ) __attribute__(( format(scanf, 2, 3) ));
+void acquire( ifstream & is );
+void release( ifstream & is );
+
+struct isacquire {
+	ifstream & is;
+};
+void ?{}( isacquire & acq, ifstream & is );
+void ^?{}( isacquire & acq );
 
 void ?{}( ifstream & is );
