summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1999-01-16 23:16:19 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1999-01-16 23:16:19 +0000
commitcf24ab9beadeea8ba4552e0882b2cb323c96a040 (patch)
tree629be4905e322de9bedc74c91d07461b4e7356fa
parentb0be299d1300d2bfaf2bf9b72592c05976d39668 (diff)
downloadATCD-cf24ab9beadeea8ba4552e0882b2cb323c96a040.tar.gz
.
-rw-r--r--ChangeLog-99b12
-rw-r--r--ace/Asynch_IO.cpp10
-rw-r--r--ace/OS.i30
-rw-r--r--ace/config-sunos5.6.h1
-rw-r--r--include/makeinclude/platform_sunos5_sunc++.GNU2
5 files changed, 37 insertions, 18 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b
index bdb447a0965..b76c47ab059 100644
--- a/ChangeLog-99b
+++ b/ChangeLog-99b
@@ -1,5 +1,17 @@
Sat Jan 16 13:40:40 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+ * ace/Asynch_IO.cpp: Replaced some ACE_Thread_Mutex decls with
+ ACE_SYNCH_MUTEX to avoid problems with threads=0.
+
+ * ace/config-sunos5.6.h: If defined(_POSIX_C_SOURCE) &&
+ _POSIX_C_SOURCE >= 199506L) || defined (__EXTENSIONS__) then
+ #define ACE_HAS_SIGWAIT to avoid compilation errors. Thanks to
+ Russ Noseworthy for reporting this.
+
+ * ace/OS.i: Fixed the ACE_OS::readdir_r() so that it doesn't fail
+ if threads are disabled via "make threads=0". Thanks to Russ
+ Noseworthy for reporting this.
+
* ace/FILE_Connector.h (ACE_FILE_Connector): Added the O_CREAT
flag to the list of flags passed to connect(). This ensures
that the file is created if it doesn't already exist. Thanks to
diff --git a/ace/Asynch_IO.cpp b/ace/Asynch_IO.cpp
index ec5ecd17032..50d3ea6323d 100644
--- a/ace/Asynch_IO.cpp
+++ b/ace/Asynch_IO.cpp
@@ -804,18 +804,18 @@ private:
// Queue of Result pointers that correspond to all the <accept>'s
// pending.
- ACE_Reactor* reactor_;
+ ACE_Reactor *reactor_;
// Reactor used by the Asynch_Accept. We need this here to enable
// and disable the <handle> now and then, depending on whether any
// <accept> is pending or no.
- ACE_Thread_Mutex lock_;
+ ACE_SYNCH_MUTEX lock_;
// The lock to protect the result queue which is shared. The queue
// is updated by main thread in the register function call and
// through the auxillary thread in the deregister fun. So let us
// mutex it.
- ACE_Proactor* proactor_;
+ ACE_Proactor *proactor_;
// Proactor used by the Asynch_Accept class.
};
@@ -838,7 +838,7 @@ ACE_Asynch_Accept_Handler::register_accept_call (ACE_Asynch_Accept::Result* resu
// The queue is updated by main thread in the register function call
// and thru the auxillary thread in the deregister fun. So let us
// mutex it.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, -1);
// Insert this result to the queue.
int insert_result = this->result_queue_.enqueue_tail (result);
@@ -867,7 +867,7 @@ ACE_Asynch_Accept_Handler::deregister_accept_call (void)
// The queue is updated by main thread in the register function call and
// thru the auxillary thread in the deregister fun. So let us mutex
// it.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, 0);
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0);
// Get the first item (result ptr) from the Queue.
ACE_Asynch_Accept::Result* result = 0;
diff --git a/ace/OS.i b/ace/OS.i
index 17b59c167ea..08bb33f752f 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -10665,21 +10665,24 @@ ACE_OS::readdir (DIR *d)
{
#if defined (ACE_HAS_DIRENT)
# if defined (ACE_PSOS)
- // The returned pointer to the dirent struct must be
- // deleted by the caller to avoid a memory leak.
+ // The returned pointer to the dirent struct must be deleted by the
+ // caller to avoid a memory leak.
struct dirent *dir_ent;
u_long result;
- ACE_NEW_RETURN (dir_ent, dirent, 0);
+
+ ACE_NEW_RETURN (dir_ent,
+ dirent,
+ 0);
result = ::read_dir (d, dir_ent);
+
if (0 == result)
- {
return dir_ent;
- }
else
- {
- errno = result;
- return 0;
- }
+ {
+ errno = result;
+ return 0;
+ }
+
# else /* ! defined (ACE_PSOS) */
return ::readdir (d);
# endif /* ! defined (ACE_PSOS) */
@@ -10694,8 +10697,11 @@ ACE_OS::readdir_r (DIR *dirp,
struct dirent *entry,
struct dirent **result)
{
-#if defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_READDIR_R)
-
+# if !defined (ACE_HAS_REENTRANT_FUNCTIONS)
+ // <result> has better not be 0!
+ *result = ACE_OS::readdir (dirp);
+ return 0;
+# elif defined (ACE_HAS_DIRENT) && !defined (ACE_LACKS_READDIR_R)
# if (defined (sun) && defined (_POSIX_PTHREAD_SEMANTICS)) || \
(!defined (sun) && (defined (ACE_HAS_PTHREADS_STD) || \
defined (ACE_HAS_PTHREADS_DRAFT7) || \
@@ -10717,7 +10723,7 @@ ACE_OS::readdir_r (DIR *dirp,
ACE_UNUSED_ARG (result);
ACE_NOTSUP_RETURN (0);
-#endif /* ! ACE_HAS_DIRENT || ACE_LACKS_READDIR_R */
+#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
}
ACE_INLINE long
diff --git a/ace/config-sunos5.6.h b/ace/config-sunos5.6.h
index 5baea22d5b1..86aedbb7b5c 100644
--- a/ace/config-sunos5.6.h
+++ b/ace/config-sunos5.6.h
@@ -15,6 +15,7 @@
#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199506L) || \
defined (__EXTENSIONS__)
# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+# define ACE_HAS_SIGWAIT
// Hack 'cuz -DPOSIX_SOURCE=199506L and -DEXTENSIONS hides this.
# include <sys/types.h>
extern "C" int madvise(caddr_t, size_t, int);
diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU
index 13930b990da..e50f52d6fe0 100644
--- a/include/makeinclude/platform_sunos5_sunc++.GNU
+++ b/include/makeinclude/platform_sunos5_sunc++.GNU
@@ -23,7 +23,7 @@ debug = 1
threads = 1
ifeq ($(threads),1)
- CFLAGS += -mt
+ CFLAGS += -mt
LDFLAGS += -mt
endif # threads