Search the web
Sign In
New User? Sign Up
ace-bugs
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Real people. Real stories. See how Yahoo! Groups impacts members worldwide.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Messages 1 - 30 of 6171   Newest  |  < Newer  |  Older >  |  Oldest
Messages: Show Message Summaries   (Group by Topic) Sort by Date v  
#30 From: "Tommy Andreasen" <tommy.andreasen@...>
Date: Wed Jan 26, 2000 2:18 pm
Subject: Problems compiling idl files
tommy.andreasen@...
Send Email Send Email
 
ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM:
PentiumII 400Mhz, Windows NT SP. 6

     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
     COMPILER NAME AND VERSION (AND PATCHLEVEL):
Microsoft Visual C++ V. 6 SP 3.

     AREA/CLASS/EXAMPLE AFFECTED:
TAO IDL Compiler

     DOES THE PROBLEM AFFECT:
         COMPILATION?
             If so, what do your $ACE_ROOT/ace/config.h

// Common defines for all compilers - that we use

#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_WINNT4 0
#define ACE_HAS_WINSOCK2 1

# if defined (__BORLANDC__)
// Borland C++
// ACE_CC_COMPILER is the preprocessor, which TAO_IDL uses
# define ACE_CC_COMPILER "CPP32.EXE"
#include "ace/config-win32.h"
#include "ace/config-win32-borland.h"
#elif defined (_MSC_VER)
// Microsoft C++
#include "ace/config-win32.h"
#endif

         LINKING?
             On Unix systems, did you run make realclean first?
         EXECUTION?
         OTHER (please specify)?
[Please indicate whether ACE, your application, or both are affected.]

     SYNOPSIS:
Have three idl files, that makes tao_idl crash, or (if one line is
removed)
generate code that doesn't compile.

     DESCRIPTION:
Having the following three idl files:

	 // ======================== ClassA.idl ========================

	 #ifndef _ClassA_idl
	 #define _ClassA_idl

	 module ModuleB {
		 interface ClassB;
		 interface Other;
	 };

	 #ifndef _ClassB_idl
	 #include "ClassB.idl"
	 #endif

	 module ModuleA {

		 interface ClassA
		 {
			 ModuleB::ClassB getB();
			 ModuleB::Other getOther();
		 };
	 };

	 #endif // _ClassA_idl

	 // ======================== ClassB.idl ========================

	 #ifndef _ClassB_idl
	 #define _ClassB_idl

	 module ModuleA {
		 interface ClassA;
	 };

	 #ifndef _ClassA_idl
	 #include "ClassA.idl"
	 #endif

	 module ModuleB {

----> // interface Other;

		 interface ClassB
		 {
			 ModuleA::ClassA getA();
			 Other getOther();
		 };

		 interface Other
		 {
			 ClassB getB();
		 };
	 };

	 #endif // _ClassB_idl

	 // ======================== ClassC.idl ========================

	 #ifndef _ClassC_idl
	 #define _ClassC_idl

	 #ifndef _ClassA_idl
	 #include "ClassA.idl"
	 #endif

	 #ifndef _ClassB_idl
	 #include "ClassB.idl"
	 #endif

	 module ModuleC {

		 interface ClassC
		 {
			 ModuleA::ClassA getA();
			 ModuleB::ClassB getB();
		 };
	 };

	 #endif // _ClassC_idl

If I don't include the marked line, tao_idl compiles the files, but the
code generated doesn't compile. MSVC++ 6 gives me the following errors:

> c:\src\idltest\tao\classbc.h(218) : error C2039: 'Other_ptr' : is not
a member of 'ModuleB'
> c:\src\idltest\tao\classbc.h(218) : error C2146: syntax error :
missing ';' before identifier 'getOther'
> c:\src\idltest\tao\classbc.h(218) : error C2433: 'Other_ptr' :
'virtual' not permitted on data declarations
> c:\src\idltest\tao\classbc.h(218) : error C2501: 'Other_ptr' :
missing storage-class or type specifiers
> c:\src\idltest\tao\classbc.h(306) : error C2039: 'Other_ptr' : is not
a member of 'ModuleB'
> c:\src\idltest\tao\classbc.h(306) : error C2146: syntax error :
missing ';' before identifier 'getOther'
> c:\src\idltest\tao\classbc.h(306) : error C2433: 'Other_ptr' :
'virtual' not permitted on data declarations
> c:\src\idltest\tao\classbc.h(306) : error C2501: 'Other_ptr' :
missing storage-class or type specifiers

This, I thought , is because 'Other' is used in interface 'ClassB'
before it is defined. So I added the
forward declaration in 'ClassB'. Now tao_idl crashes when compiling
'classB.idl' and gives the following
error message when compiling the two other files:

> tao_idl: "?", line 14: forward declared but never defined: interface
Other

This is a very simplified scenario of the problem we have, so please
don't
tell me to put all interfaces in the same file. We tried that, and it
worked,
until some day Borlands linker refused to link the program. This is a
known bug
in the Borland linker:

From: http://www.borland.com/devsupport/bcppbuilder/bugs/bcppbuilder4/b
ugs/linker.html

	 The incremental linker is currently only capable of
         importing 11914 functions from a single import
         module.
         ...
         This appears to be caused by the inability of the
         linker to grow the OBJ symbol heap.

It seems that Inprise has their own version of 'Annoying.h'.

     REPEAT BY:
[What you did to get the error; include test program or session
transcript if at all possible.  ]

     SAMPLE FIX/WORKAROUND:
[If available ]

#29 From: "Douglas C. Schmidt" <schmidt@...>
Date: Tue Jan 25, 2000 10:25 pm
Subject: Re: examples: test_position_independent_malloc dumps core
schmidt@...
Send Email Send Email
 
Hi Rick,

>> I'm just beginning to use ACE so please let me know if my analysis of
>> this problem is wrong.

Ok!

>>     ACE VERSION: 5.0.12
>>
>>     HOST MACHINE and OPERATING SYSTEM: Pentium II/450 with RedHat Linux
>> 6.0
>>     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>>     COMPILER NAME AND VERSION (AND PATCHLEVEL): gcc version 2.95.2
>> 19991024 (release)
>>
>>     AREA/CLASS/EXAMPLE AFFECTED:
>>         examples/test_position_independent_malloc
>>
>>     DOES THE PROBLEM AFFECT:
>>         COMPILATION? No
>>         LINKING? No
>>         EXECUTION? No
>>         OTHER (please specify)?
>>
>>     SYNOPSIS:
>>         examples/test_position_independent_malloc will dump core if the
>>         base address is different between two runs.
>>
>>     DESCRIPTION:
>>         examples/test_position_independent_malloc does not use the
>>         position independent malloc control block.

Yikes, that sounds like an oversight.

>>     REPEAT BY:
>>         Run examples/test_position_independent_malloc twice without any
>>  arguments and it works. Both runs are using the same base address.
>>
>>         To see it fail, run the example with no arguments then run it
>>         again with arguments of '-a 0' to let the system pick a base
>>         address instead of using ACE_DEFAULT_BASE_ADDR. It will promptly
>>         dump core.
>>
>>     SAMPLE FIX/WORKAROUND:
>> --- test_position_independent_malloc.cpp.~1~ Wed Aug  4 00:15:00 1999
>> +++ test_position_independent_malloc.cpp Tue Jan 25 13:20:12 2000

Thanks for the fix.  I've integrated this into the next beta release
of ACE.

Thanks,

         Doug
--
Dr. Douglas C. Schmidt, Associate Professor  TEL: (949) 824-1901
Dept of Electrical & Computer Engineering    FAX: (949) 824-2321
616E Engineering Tower                       WEB: www.eng.uci.edu/~schmidt/
University of Calfornia, Irvine, 92697-2625  NET: schmidt@...

#28 From: David Levine <levine@...>
Date: Tue Jan 25, 2000 8:52 pm
Subject: Re: ACE_High_Res_Timer: global_scale_factor() is not setting global_s cale_factor_status_ if ACE_WIN32
levine@...
Send Email Send Email
 
Vince writes:

>     ACE VERSION: 5.0.12
>
>     HOST MACHINE and OPERATING SYSTEM: Dual 300Mhz Intel running Windows NT
> 4.0 (SP 4)
>     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>     COMPILER NAME AND VERSION (AND PATCHLEVEL): Visual C++ 6.0
>
>     AREA/CLASS/EXAMPLE AFFECTED:
> ACE_High_Res_Timer::global_scale_factor(void)
>
>     DOES THE PROBLEM AFFECT:
>         COMPILATION? NO
>         LINKING? NO
>         EXECUTION? YES
>         OTHER (please specify)?
>
>     SYNOPSIS: Static variable
> ACE_High_Res_Timer::global_scale_factor_status_ is not being set to 1 in
> ACE_High_Res_Timer::global_scale_factor(void) if ACE_WIN32 is defined and
> QueryPerformanceFrequency() returns TRUE.

Right.  Darrell, would you add/move the code to set
ACE_High_Res_Timer::global_scale_factor_status_ to one
in this case, please?

>     DESCRIPTION:  The failure to set the static variable
> ACE_High_Res_Timer::global_scale_factor_status_ to 1 in
> ACE_High_Res_Timer::global_scale_factor(void) appears to result in a
> static(?) thread mutex being locked/unlocked for each call to
> ACE_High_Res_Timer::start()/stop().  Is this expected behaviour?

Yes, but only for the first call.  After the code is fixed, it
shouldn't happen on any other calls.

> Multi-threaded applications using ACE_High_Res_Timers appear to exhibit
> non-scalable performance.  In other words, it is not possible to drive such
> an application to 100% CPU utilization when each thread is doing nothing
> more than a start() and stop() of a local timer object.  Rational's Quantify
> was used to determine where the application was spending the majority of
> it's time.  It was determined that the calls to
> EnterCriticalSection/LeaveCriticalSection (caused by locking/unlocking the
> mutex) were responsible for the majority of the time.
>
>     REPEAT BY:  This should be relatively easy to test by creating an
> application that spawns n threads where each thread basically does nothing
> more than start() and stop() a high res timer.

Not necessary, after the bug is fixed.

>     SAMPLE FIX/WORKAROUND:  Comment out line 180 or set
> ACE_High_Res_Timer::global_scale_factor_status_ to 1 prior to line 180.

Thanks,
David

#27 From: "Adamo, Vince" <adamo@...>
Date: Tue Jan 25, 2000 8:19 pm
Subject: ACE_High_Res_Timer: global_scale_factor() is not setting global_s cale_factor_status_ if ACE_WIN32
adamo@...
Send Email Send Email
 
ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM: Dual 300Mhz Intel running Windows NT
4.0 (SP 4)
     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
     COMPILER NAME AND VERSION (AND PATCHLEVEL): Visual C++ 6.0

     AREA/CLASS/EXAMPLE AFFECTED:
ACE_High_Res_Timer::global_scale_factor(void)

     DOES THE PROBLEM AFFECT:
         COMPILATION? NO
         LINKING? NO
         EXECUTION? YES
         OTHER (please specify)?

     SYNOPSIS: Static variable
ACE_High_Res_Timer::global_scale_factor_status_ is not being set to 1 in
ACE_High_Res_Timer::global_scale_factor(void) if ACE_WIN32 is defined and
QueryPerformanceFrequency() returns TRUE.

     DESCRIPTION:  The failure to set the static variable
ACE_High_Res_Timer::global_scale_factor_status_ to 1 in
ACE_High_Res_Timer::global_scale_factor(void) appears to result in a
static(?) thread mutex being locked/unlocked for each call to
ACE_High_Res_Timer::start()/stop().  Is this expected behaviour?
Multi-threaded applications using ACE_High_Res_Timers appear to exhibit
non-scalable performance.  In other words, it is not possible to drive such
an application to 100% CPU utilization when each thread is doing nothing
more than a start() and stop() of a local timer object.  Rational's Quantify
was used to determine where the application was spending the majority of
it's time.  It was determined that the calls to
EnterCriticalSection/LeaveCriticalSection (caused by locking/unlocking the
mutex) were responsible for the majority of the time.

     REPEAT BY:  This should be relatively easy to test by creating an
application that spawns n threads where each thread basically does nothing
more than start() and stop() a high res timer.

     SAMPLE FIX/WORKAROUND:  Comment out line 180 or set
ACE_High_Res_Timer::global_scale_factor_status_ to 1 prior to line 180.

#26 From: Rick Ohnemus <rjohnemus@...>
Date: Tue Jan 25, 2000 7:41 pm
Subject: examples: test_position_independent_malloc dumps core
rjohnemus@...
Send Email Send Email
 
I'm just beginning to use ACE so please let me know if my analysis of
this problem is wrong.

     ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM: Pentium II/450 with RedHat Linux
6.0
     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
     COMPILER NAME AND VERSION (AND PATCHLEVEL): gcc version 2.95.2
19991024 (release)

     AREA/CLASS/EXAMPLE AFFECTED:
         examples/test_position_independent_malloc

     DOES THE PROBLEM AFFECT:
         COMPILATION? No
         LINKING? No
         EXECUTION? No
         OTHER (please specify)?

     SYNOPSIS:
         examples/test_position_independent_malloc will dump core if the
         base address is different between two runs.

     DESCRIPTION:
         examples/test_position_independent_malloc does not use the
         position independent malloc control block.

     REPEAT BY:
         Run examples/test_position_independent_malloc twice without any
	 arguments and it works. Both runs are using the same base address.

         To see it fail, run the example with no arguments then run it
         again with arguments of '-a 0' to let the system pick a base
         address instead of using ACE_DEFAULT_BASE_ADDR. It will promptly
         dump core.

     SAMPLE FIX/WORKAROUND:
--- test_position_independent_malloc.cpp.~1~ Wed Aug  4 00:15:00 1999
+++ test_position_independent_malloc.cpp Tue Jan 25 13:20:12 2000
@@ -14,7 +14,7 @@

  ACE_RCSID(Shared_Malloc, test_multiple_mallocs,
"test_position_independent_malloc.cpp,v 4.12 1999/08/04 05:15:00 schmidt
Exp")

-typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex> MALLOC;
+typedef ACE_Malloc_T <ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex,
ACE_PI_Control_Block> MALLOC;

  // Default address for memory-mapped files.
  static void *base_addr = ACE_DEFAULT_BASE_ADDR;
@@ -192,6 +192,7 @@
  template class ACE_Based_Pointer<Long_Test>;
  template class auto_ptr <MALLOC>;
  template class ACE_Auto_Basic_Ptr<MALLOC>;
+template class ACE_Malloc_T <ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex,
ACE_PI_Control_Block>;
  #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
  #pragma instantiate ACE_Based_Pointer<Test_Data>
  #pragma instantiate ACE_Based_Pointer_Basic<Test_Data>
@@ -200,4 +201,5 @@
  #pragma instantiate ACE_Based_Pointer_Basic<Long>
  #pragma instantiate auto_ptr <MALLOC>
  #pragma instantiate ACE_Auto_Basic_Ptr<MALLOC>
+#pragma instantiate ACE_Malloc_T <ACE_MMAP_MEMORY_POOL,
ACE_Process_Mutex, ACE_PI_Control_Block>
  #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */

#25 From: "Scholte, Alex" <Alex.Scholte@...>
Date: Mon Jan 24, 2000 11:20 pm
Subject: RE: Orb Services: Compiling Notify_Filter_i.cpp
Alex.Scholte@...
Send Email Send Email
 
Nanbor >> The problem with this change is that I don't see how I can
determine
	 Nanbor >> when to use ACE_DES_PTR_ARRAY_FREE over ACE_DES_ARRAY_FREE
with
	 Nanbor >> ACE_Array.  Does that make sense?

	 Yes. I see the problem. Each macro needs to be selected depending on
the type passed as a parameter to the ACE_ARRAY template. Not possible as
far as I know.

	 Since the code compiles on VS 6, I am starting to suspect it is a
bug or limitation of VS 5. May be time to upgrade !
	 Still I really don't understand how the ACE_DES_ARRAY_FREE works
with a pointer passed as a parameter to the template since the line in the
macro:

		 (this->array_)[i].~T ();

	 expands to: (this->array_)[i].~Notify_Constraint_Expr* ();

	 which I don't think makes sense (or maybe I just don't understand).


	 Alex



> -----Original Message-----
> From: Nanbor Wang [SMTP:nanbor@...]
> Sent: Tuesday, 25 January 2000 6:05
> To: ace-bugs@...
> Cc: Pradeep Gore
> Subject: Re: [ace-bugs] Orb Services: Compiling Notify_Filter_i.cpp
>
> Hi Alex,
>
>     >>> looking throught the code in 'Containers_T.i', I have doubts
>     >>> whether ACE_DES_ARRAY_FREE is the correct macro to use.
>
>     Doug> Can you please be more specific what you are looking at?
>     Doug> Most of this code has been around for a long time, so if
>     Doug> there were problems I suspect they would have shownup by
>     Doug> now.
>
>     >>> It appears that ACE_DES_ARRAY_FREE calls a destructor for T on
>     >>> each of the elements of the array and then frees the entire
>     >>> array using the allocator.
>
>     Doug> Yes, that's correct.
>
>     >>> However the template used by the class TAO_Notify_Filter_i is
>     >>> instantiated with the Notify_Constraint_Expr* type.
>     >>>
>     >>> ie ACE_Array<Notify_Constraint_Expr*>.
>
>     Doug> Ah, ok, it's the ACE_Array class then, right?
>
>     >>> Therefore the array is an array of pointers to
>     >>> Notify_Constraint_Expr, not an array of Notify_Constraint_Expr
>     >>> objects.
>
>     Doug> Right, that's ok.
>
>     >>> The macro attempts to call the descructor of
>     >>> Notify_Constraint_Expr*, not Notify_Constraint_Expr. Is this
>     >>> what is intended ?
>
>     Doug> Yes, that's correct.  That's how C++ works.
>
>     >>> The macro expands to template <class T> ACE_INLINE
>     >>> ACE_Array_Base<T>::~ACE_Array_Base (void) { do { if
>     >>> (this->array_) { for (size_t i = 0; i < this->max_size_; ++i)
>     >>> { (this->array_)[i].~T (); }
>     >>>
>     this-> allocator_->free (this->array_);
>     >>> } } while (0); }
>     >>>
>     >>> There also seems to be another problem with the instantiation
>     >>> of the template with Visual Studio. From the compilation error
>     >>> it seems that the T template parametre in the destructor call
>     >>> is not being expanded to the correct name.
>     >>>
>     >>> ie the line: (this->array_)[i].~T ();
>     >>>
>     >>> will expand to: (this->array_)[i].~Notify_Constraint_Expr* ();
>     >>>
>     >>> where it should expand to:
>     >>> (this->array_)[i]->~Notify_Constraint_Expr ();
>     >>>
>     >>> Also any memory pointed to be the array of pointers of type
>     >>> Notify_Constraint_Expr* is not deallocated.
>
>     Doug> Nanbor, can you please take a look at this to see what's
>     Doug> going on here and see if we need to change this macro?
>
> I think we much use a class name with ACE_Array's.  Pradeep, can you
> please check this out if this was your intention for not releasing
> those expressions?
>
>     >> A proposed solution is:
>     >> # define
>     >>
> ACE_DES_PTR_ARRAY_FREE(POINTER,SIZE,ARRAYDEALLOCATOR,CLASS,CLASSDEALLOCATO
> R) \
>     >>    do { \
>     >>         if (POINTER) \
>     >>           { \
>     >>             for (size_t i = 0; \
>     >>                  i < SIZE; \
>     >>                  ++i) \
>     >>             { \
>     >>               (POINTER)[i]->~CLASS (); \
>     >> 	  CLASSDEALLOCATOR((POINTER)[i])\
>     >>             } \
>     >>             ARRAYDEALLOCATOR(POINTER); \
>     >>           } \
>     >>       } \
>     >>    while (0)
>
> The problem with this change is that I don't see how I can determine
> when to use ACE_DES_PTR_ARRAY_FREE over ACE_DES_ARRAY_FREE with
> ACE_Array.  Does that make sense?
>
> Thanks,
>
> nanbor
>
> --
> Nanbor Wang <nanbor@...>

#24 From: Praveen Yajman <praveen@...>
Date: Mon Jan 24, 2000 11:19 pm
Subject: JAWS stress testing : cannot compile
praveen@...
Send Email Send Email
 
ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM: Dual Pentium II 500Mhz, RedHat 6.1
     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
     COMPILER NAME AND VERSION (AND PATCHLEVEL): g++ 2.91.66

     AREA/CLASS/EXAMPLE AFFECTED:  Cannot build files in JAWS/stress
				   testing

     DOES THE PROBLEM AFFECT:
         COMPILATION?
             If so, what do your $ACE_ROOT/ace/config.h and
             $ACE_ROOT/include/makeinclude/platform_macros.GNU contain?

		 config.h -> config-linux-lxpthreads.h
		 platform_macros.GNU -> platform_linux_lxpthread.GNU

         LINKING?
             On Unix systems, did you run make realclean first?
		 yes

         EXECUTION?
         OTHER (please specify)?
[Please indicate whether ACE, your application, or both are affected.]

     SYNOPSIS:  Cannot build the files in JAWS/stress_testing (linker
errors).

     DESCRIPTION:  I get errors like these for all the functions in
client_thread().

.obj/http_tester.o: In function `client_thread(void *)':
/root/projects/ACE_wrappers/apps/JAWS/stress_testing/http_tester.cpp:20:
undefined reference to `URL::get_protocol(void)'

#23 From: Pradeep Gore <pradeep@...>
Date: Mon Jan 24, 2000 8:38 pm
Subject: Re: Orb Services: Compiling Notify_Filter_i.cpp
pradeep@...
Send Email Send Email
 
Hi Alex,

	 The Notify_Filter_i.cpp compiles successfully here on NT with VS
6.

> I think we much use a class name with ACE_Array's.  Pradeep, can you
> please check this out if this was your intention for not releasing
> those expressions?
>

I used the ACE_Array to hold pointers to objects for some temporary
evaluation. The objects to those pointers were not meant to be deleted.

thanks,
Pradeep

#22 From: Nanbor Wang <nanbor@...>
Date: Mon Jan 24, 2000 7:05 pm
Subject: Re: Orb Services: Compiling Notify_Filter_i.cpp
nanbor@...
Send Email Send Email
 
Hi Alex,

     >>> looking throught the code in 'Containers_T.i', I have doubts
     >>> whether ACE_DES_ARRAY_FREE is the correct macro to use.

     Doug> Can you please be more specific what you are looking at?
     Doug> Most of this code has been around for a long time, so if
     Doug> there were problems I suspect they would have shownup by
     Doug> now.

     >>> It appears that ACE_DES_ARRAY_FREE calls a destructor for T on
     >>> each of the elements of the array and then frees the entire
     >>> array using the allocator.

     Doug> Yes, that's correct.

     >>> However the template used by the class TAO_Notify_Filter_i is
     >>> instantiated with the Notify_Constraint_Expr* type.
     >>>
     >>> ie ACE_Array<Notify_Constraint_Expr*>.

     Doug> Ah, ok, it's the ACE_Array class then, right?

     >>> Therefore the array is an array of pointers to
     >>> Notify_Constraint_Expr, not an array of Notify_Constraint_Expr
     >>> objects.

     Doug> Right, that's ok.

     >>> The macro attempts to call the descructor of
     >>> Notify_Constraint_Expr*, not Notify_Constraint_Expr. Is this
     >>> what is intended ?

     Doug> Yes, that's correct.  That's how C++ works.

     >>> The macro expands to template <class T> ACE_INLINE
     >>> ACE_Array_Base<T>::~ACE_Array_Base (void) { do { if
     >>> (this->array_) { for (size_t i = 0; i < this->max_size_; ++i)
     >>> { (this->array_)[i].~T (); }
     >>>
     this-> allocator_->free (this->array_);
     >>> } } while (0); }
     >>>
     >>> There also seems to be another problem with the instantiation
     >>> of the template with Visual Studio. From the compilation error
     >>> it seems that the T template parametre in the destructor call
     >>> is not being expanded to the correct name.
     >>>
     >>> ie the line: (this->array_)[i].~T ();
     >>>
     >>> will expand to: (this->array_)[i].~Notify_Constraint_Expr* ();
     >>>
     >>> where it should expand to:
     >>> (this->array_)[i]->~Notify_Constraint_Expr ();
     >>>
     >>> Also any memory pointed to be the array of pointers of type
     >>> Notify_Constraint_Expr* is not deallocated.

     Doug> Nanbor, can you please take a look at this to see what's
     Doug> going on here and see if we need to change this macro?

I think we much use a class name with ACE_Array's.  Pradeep, can you
please check this out if this was your intention for not releasing
those expressions?

     >> A proposed solution is:
     >> # define
     >>
ACE_DES_PTR_ARRAY_FREE(POINTER,SIZE,ARRAYDEALLOCATOR,CLASS,CLASSDEALLOCATOR) \
     >>    do { \
     >>         if (POINTER) \
     >>           { \
     >>             for (size_t i = 0; \
     >>                  i < SIZE; \
     >>                  ++i) \
     >>             { \
     >>               (POINTER)[i]->~CLASS (); \
     >> 	  CLASSDEALLOCATOR((POINTER)[i])\
     >>             } \
     >>             ARRAYDEALLOCATOR(POINTER); \
     >>           } \
     >>       } \
     >>    while (0)

The problem with this change is that I don't see how I can determine
when to use ACE_DES_PTR_ARRAY_FREE over ACE_DES_ARRAY_FREE with
ACE_Array.  Does that make sense?

Thanks,

nanbor

--
Nanbor Wang <nanbor@...>

#21 From: David Levine <levine@...>
Date: Sat Jan 22, 2000 2:37 pm
Subject: Re: ACE_SV_Semaphore_Complex on Digital Unix
levine@...
Send Email Send Email
 
Fabrizio writes:

>     SYNOPSIS:
> I have either the message
> ACE_SV_Semaphore_Complex : Invalid argument
> or
> ACE_SV_Semaphore_Complex : No space left on device
> and my process is not able to fork anymore.
>
>     DESCRIPTION:
> My program spawns several child processes that communicate between them
> through shared memory.
> After 3 or 4 processes have been spawned, at next fork, I have the
> errors mentioned above.

It looks like you're running out of system resources.  You
try looking at the limit and ulimit man pages.  And, ask
your system administrator for assistance.

Thanks,
David

#20 From: "Douglas C. Schmidt" <schmidt@...>
Date: Fri Jan 21, 2000 10:50 pm
Subject: Re: Orb Services: Compiling Notify_Filter_i.cpp
schmidt@...
Send Email Send Email
 
Hi Alex,

>>  looking throught the code in 'Containers_T.i', I have doubts whether
>> ACE_DES_ARRAY_FREE is the correct macro to use.

Can you please be more specific what you are looking at?  Most of this
code has been around for a long time, so if there were problems I
suspect they would have shownup by now.

>>  It appears that ACE_DES_ARRAY_FREE calls a destructor for T on
>> each of the elements of the array and then frees the entire array
>> using the allocator.

Yes, that's correct.

>> However the template used by the class TAO_Notify_Filter_i is instantiated
>> with the Notify_Constraint_Expr* type.
>>
>> ie ACE_Array<Notify_Constraint_Expr*>.

Ah, ok, it's the ACE_Array class then, right?

>> Therefore the array is an array of pointers to Notify_Constraint_Expr, not
>> an array of Notify_Constraint_Expr objects.

Right, that's ok.

>> The macro attempts to call the descructor of Notify_Constraint_Expr*, not
>> Notify_Constraint_Expr. Is this what is intended ?

Yes, that's correct.  That's how C++ works.

>> The macro expands to
>> template <class T> ACE_INLINE
>> ACE_Array_Base<T>::~ACE_Array_Base (void)
>> {
>>   do
>>   {
>> 	  if (this->array_)
>> 	  {
>> 		  for (size_t i = 0; i < this->max_size_; ++i)
>> 		  {
>> 			  (this->array_)[i].~T ();
>> 		  }
>>
>> 		  this->allocator_->free (this->array_);
>> 	  }
>>   } while (0);
>> }
>>
>> There also seems to be another problem with the instantiation of the
>> template with Visual Studio. From the compilation error it seems that the T
>> template parametre in the destructor call is not being expanded to the
>> correct name.
>>
>> ie the line:
>>  (this->array_)[i].~T ();
>>
>> will expand to:
>>  (this->array_)[i].~Notify_Constraint_Expr* ();
>>
>> where it should expand to:
>>  (this->array_)[i]->~Notify_Constraint_Expr ();
>>
>> Also any memory pointed to be the array of pointers of type
>> Notify_Constraint_Expr* is not deallocated.

Nanbor, can you please take a look at this to see what's going on here
and see if we need to change this macro?

Thanks,

         Doug

>> A proposed solution is:
>> # define
>> ACE_DES_PTR_ARRAY_FREE(POINTER,SIZE,ARRAYDEALLOCATOR,CLASS,CLASSDEALLOCATOR)
>> \
>>    do { \
>>         if (POINTER) \
>>           { \
>>             for (size_t i = 0; \
>>                  i < SIZE; \
>>                  ++i) \
>>             { \
>>               (POINTER)[i]->~CLASS (); \
>> 	  CLASSDEALLOCATOR((POINTER)[i])\
>>             } \
>>             ARRAYDEALLOCATOR(POINTER); \
>>           } \
>>       } \
>>    while (0)
--
Dr. Douglas C. Schmidt, Associate Professor  TEL: (949) 824-1901
Dept of Electrical & Computer Engineering    FAX: (949) 824-2321
616E Engineering Tower                       WEB: www.eng.uci.edu/~schmidt/
University of Calfornia, Irvine, 92697-2625  NET: schmidt@...

#19 From: Fabrizio Pacini <fpacini@...>
Date: Fri Jan 21, 2000 5:08 pm
Subject: ACE_SV_Semaphore_Complex on Digital Unix
fpacini@...
Send Email Send Email
 
Subject: problem with ACE on Digital Unix

     ACE VERSION:   version 4.2

     HOST MACHINE and OPERATING SYSTEM:
>> uname -a
>> OSF1 ASCSAWS3 V4.0 1091 alpha

     COMPILER NAME AND VERSION (AND PATCHLEVEL):
>> gcc -v : 2.7.2.1
>> make -v: GNU make 3.74

     AREA/CLASS/EXAMPLE AFFECTED:


  THE PROBLEM AFFECT:
         EXECUTION
I get the problem at runtime.
Both ACE and my application are affected.


     SYNOPSIS:
I have either the message
ACE_SV_Semaphore_Complex : Invalid argument
or
ACE_SV_Semaphore_Complex : No space left on device
and my process is not able to fork anymore.




     DESCRIPTION:
My program spawns several child processes that communicate between them
through shared memory.
After 3 or 4 processes have been spawned, at next fork, I have the
errors mentioned above.




     REPEAT BY:
If  I run the tests SV_Shared_Memory_Test and running Mutex_Test I have
the following error messages:

running SV_Shared_Memory_Test
ACE_SV_Semaphore_Simple::ACE_SV_Semaphore_Simple: No space left on
device
ACE_ASSERT: file SV_Shared_Memory_Test.cpp, line 39 assertion failed for

'mutex.open (SEM_KEY_1, ACE_SV_Semaphore_Complex::ACE_CREATE, 0) != -1'.

ACE_ASSERT: file SV_Shared_Memory_Test.cpp, line 71 assertion failed for

'mutex.open (SEM_KEY_1, ACE_SV_Semaphore_Complex::ACE_CREATE, 0) != -1'.

"SV_Shared_Memory_Test" FAILED with exit status 255!!!!
Error in log file no line with Ending
ACE_ASSERT: file SV_Shared_Memory_Test.cpp, line 39 assertion failed for

'mutex.open (SEM_KEY_1, ACE_SV_Semaphore_Complex::ACE_CREATE, 0) != -1'.

ACE_ASSERT: file SV_Shared_Memory_Test.cpp, line 71 assertion failed for

'mutex.open (SEM_KEY_1, ACE_SV_Semaphore_Complex::ACE_CREATE, 0) != -1'.




running Mutex_Test
ACE_ASSERT: file Mutex_Test.cpp, line 40 assertion failed for
'pm->acquire () == 0'.
"Mutex_Test" FAILED with exit status 255!!!!
ACE_ASSERT: file Mutex_Test.cpp, line 40 assertion failed for
'pm->acquire () == 0'.
Error in log file no line with Ending
ACE_ASSERT: file Mutex_Test.cpp, line 40 assertion failed for
'pm->acquire () == 0'.
ACE_ASSERT: file Mutex_Test.cpp, line 40 assertion failed for
'pm->acquire () == 0'.


     SAMPLE FIX/WORKAROUND: N/A

Please help!!

-- Fabrizio --

--
.......................................................................
Fabrizio Pacini  <fpacini@...>
DATAMAT  Ingegneria dei Sistemi S.p.A.
Space & Environment Unit - G/S Programs Group
Unit Home Page: http://www.datamat.it/progetti/english/space.htm
Via Laurentina, 760 - 00143 - Rome - Italy
Ph.: +39-06-5027.4573  -  Fax: +39-06-5020775
WWW Site:   http://www.datamat.it

#18 From: "Scholte, Alex" <Alex.Scholte@...>
Date: Thu Jan 20, 2000 11:55 pm
Subject: RE: Orb Services: Compiling Notify_Filter_i.cpp
Alex.Scholte@...
Send Email Send Email
 
Doug,
	 looking throught the code in 'Containers_T.i', I have doubts whether
ACE_DES_ARRAY_FREE is the correct macro to use.

	 It appears that ACE_DES_ARRAY_FREE calls a destructor for T on each
of the elements of the array and then frees the entire array using the
allocator.

However the template used by the class TAO_Notify_Filter_i is instantiated
with the Notify_Constraint_Expr* type.

ie ACE_Array<Notify_Constraint_Expr*>.

Therefore the array is an array of pointers to Notify_Constraint_Expr, not
an array of Notify_Constraint_Expr objects.
The macro attempts to call the descructor of Notify_Constraint_Expr*, not
Notify_Constraint_Expr. Is this what is intended ?

The macro expands to
template <class T> ACE_INLINE
ACE_Array_Base<T>::~ACE_Array_Base (void)
{
   do
   {
	   if (this->array_)
	   {
		   for (size_t i = 0; i < this->max_size_; ++i)
		   {
			   (this->array_)[i].~T ();
		   }

		   this->allocator_->free (this->array_);
	   }
   } while (0);
}

There also seems to be another problem with the instantiation of the
template with Visual Studio. From the compilation error it seems that the T
template parametre in the destructor call is not being expanded to the
correct name.

ie the line:
	 (this->array_)[i].~T ();

will expand to:
	 (this->array_)[i].~Notify_Constraint_Expr* ();

where it should expand to:
	 (this->array_)[i]->~Notify_Constraint_Expr ();


Also any memory pointed to be the array of pointers of type
Notify_Constraint_Expr* is not deallocated.

A proposed solution is:
# define
ACE_DES_PTR_ARRAY_FREE(POINTER,SIZE,ARRAYDEALLOCATOR,CLASS,CLASSDEALLOCATOR)
\
    do { \
         if (POINTER) \
           { \
             for (size_t i = 0; \
                  i < SIZE; \
                  ++i) \
             { \
               (POINTER)[i]->~CLASS (); \
	   CLASSDEALLOCATOR((POINTER)[i])\
             } \
             ARRAYDEALLOCATOR(POINTER); \
           } \
       } \
    while (0)

thanks,
Alex.

> -----Original Message-----
> From: Douglas C. Schmidt [SMTP:schmidt@...]
> Sent: Tuesday, 18 January 2000 15:04
> To: ace-bugs@...; bala@...
> Subject: Re: [ace-bugs] Orb Services: Compiling Notify_Filter_i.cpp
>
> Hi Alex,
>
> >>     ACE VERSION: 5.0.12
> >>
> >>     HOST MACHINE and OPERATING SYSTEM:
> >> 		 Intel Celeron / Windows NT 4.0 SP3
> >>
> >>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
> >> 		 MS VS v5.0 sp3
> >>
> >>     AREA/CLASS/EXAMPLE AFFECTED:
> >> The Notify_Filter_i.cpp failed to compile
> >>
> >>     SYNOPSIS:
> >> During comilation of the ORB Services DLL project the file
> >> Notify_Filter_i.cpp fails to compile.
> >> All depend projects have compiled correctly.
> >>
> >>     DESCRIPTION:
> >> The Error the compiler produces is in the file
> >>
> >> Containers_T.i(311) : error C2300:
> >> 'TAO_Notify_Filter_i::Notify_Constraint_Expr' :
> >>  class does not have a destructor called '~T'
> >>
> >> The problem seems to be with the line.
> >> 	  ACE_DES_ARRAY_FREE (this->array_,
> >>                       this->max_size_,
> >>                       this->allocator_->free,
> >>                       T);
>
> This sounds like some type of configuration problem with ACE or your
> version of MSVC++.  I don't think we have any MSVC 5.0 versions
> running in our lab anymore, so you may need to help track this down
> since I don't think we can reproduce it at WU or UCI.
>
> Bala, since Pradeep isn't back from India yet, can you please add this
> to bugzilla so we can track it?  Please attribute it to
>
> Alex Scholte <Alex.Scholte@...>
>
> Thanks,
>
>         Doug
> --
> Dr. Douglas C. Schmidt, Associate Professor  TEL: (949) 824-1901
> Dept of Electrical & Computer Engineering    FAX: (949) 824-2321
> 616E Engineering Tower                       WEB:
> www.eng.uci.edu/~schmidt/
> University of Calfornia, Irvine, 92697-2625  NET: schmidt@...

#17 From: "Douglas C. Schmidt" <schmidt@...>
Date: Thu Jan 20, 2000 6:42 pm
Subject: Re: Building ACE on IRIX6.5
schmidt@...
Send Email Send Email
 
Hi Thierry,

>> I have built successfully ACE5+TAO1 on my PC/Linux and it looks good
>> from my first test, but I have a problem when I try to build ACE on an
>> SGI/IRIX 6.5:
>> I am using the IRIX native C++ compiler with
>>    ln -sf config-irix6.x-sgic++.h config.h under ace
>>    ln -sf platform_irix6.x_sgic++.GNU platform_macros.GNU under
>>       include/makeinclude
>>
>> When I try to run the building Makefile for ACE from the clone
>> directory for Irix, I obtain the following error message:
>> make -f ../Makefile clone
>> make: file `/Misc/ACE/ACE_wrappers/include/makeinclude/wrapper_macros.G
>> NU' line 130: Must be a separator (: or ::) for rules (bu39)
>> make: file `/Misc/ACE/ACE_wrappers/include/makeinclude/wrapper_macros.G
>> NU' line 130: Must be a separator (: or ::) for rules (bu39)
>> make: file `/Misc/ACE/ACE_wrappers/include/makeinclude/wrapper_macros.G
>> NU' line 130: Syntax error
>>
>> Could someone provide me with a work-around? Thanks in advance

Please make sure that you're using GNU Make.  If you read

$ACE_ROOT/ACE-INSTALL.html

it explains all of this.

Thanks,

         Doug
--
Dr. Douglas C. Schmidt, Associate Professor  TEL: (949) 824-1901
Dept of Electrical & Computer Engineering    FAX: (949) 824-2321
616E Engineering Tower                       WEB: www.eng.uci.edu/~schmidt/
University of Calfornia, Irvine, 92697-2625  NET: schmidt@...

#16 From: "Thierry LAMANT" <thierry.lamant@...>
Date: Thu Jan 20, 2000 4:51 pm
Subject: Building ACE on IRIX6.5
thierry.lamant@...
Send Email Send Email
 
I have built successfully ACE5+TAO1 on my PC/Linux and it looks good
from my first test, but I have a problem when I try to build ACE on an
SGI/IRIX 6.5:
I am using the IRIX native C++ compiler with
    ln -sf config-irix6.x-sgic++.h config.h under ace
    ln -sf platform_irix6.x_sgic++.GNU platform_macros.GNU under
       include/makeinclude

When I try to run the building Makefile for ACE from the clone
directory for Irix, I obtain the following error message:
make -f ../Makefile clone
make: file `/Misc/ACE/ACE_wrappers/include/makeinclude/wrapper_macros.G
NU' line 130: Must be a separator (: or ::) for rules (bu39)
make: file `/Misc/ACE/ACE_wrappers/include/makeinclude/wrapper_macros.G
NU' line 130: Must be a separator (: or ::) for rules (bu39)
make: file `/Misc/ACE/ACE_wrappers/include/makeinclude/wrapper_macros.G
NU' line 130: Syntax error

Could someone provide me with a work-around? Thanks in advance

For your information, I am in charge of evaluating COTS software
solutions for the development of aircraft engineering and piloted
simulators.
Our platform is Unix(Irix/Aix/Solaris)/Linux(PC) and NT based.


Best Regards

#15 From: Chris <chris_leishman@...>
Date: Wed Jan 19, 2000 10:52 pm
Subject: g++dep: bad substitutions / fix
chris_leishman@...
Send Email Send Email
 
AREA/CLASS/EXAMPLE AFFECTED:
     Error in g++dep causes bad substitutions in Makefiles.

     SYNOPSIS:
     Any where a ".o" or ".h" is encountered causes a substitution to occur.

     SAMPLE FIX/WORKAROUND:

--- /usr/local/src/ACE_wrappers/bin/g++dep.old      Thu Jan 20 09:49:51 2000
+++ /usr/local/src/ACE_wrappers/bin/g++dep      Thu Jan 20 09:45:53 2000
@@ -82,13 +82,13 @@
  if [ $DO_ACE_MAKE_DEPEND -eq 1 ]
  then
    SCRIPT=${TMP}_script
-  echo "s;\([-a-zA-Z0-9._]*\)\.o:;\\" > $SCRIPT
+  echo "s;\([-a-zA-Z0-9._]+\)\.o:;\\" > $SCRIPT
    echo ".obj/\1.o .obj/\1.${SOEXT} ${VSHDIR}\1.o ${VSHDIR}\1.${SOEXT}:;" >>
$SCRIPT
    TMP2=${TMP}_2
    cat $TMP | \
    sed \
        -e '/$(ACE_ROOT)\/ace\/config[^\.]*\.h/d' \
-      -e "s; /[-a-zA-Z0-9_./]*\.h;;g" \
+      -e "s; /[-a-zA-Z0-9_./]+\.h;;g" \
        -f $SCRIPT > $TMP2
    mv $TMP2 $TMP
    rm -f $TMP2


Not a brilliant solution - but I think it is what was originally intended.



Chris

#14 From: David Levine <levine@...>
Date: Wed Jan 19, 2000 4:57 pm
Subject: Re: Undefined Symbols - libACE.so for vxWorks
levine@...
Send Email Send Email
 
Dave Hall writes:

>     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>         Gespac PCIPPC3 (Power PC 603E)
>         Tornado 1.0.1

> Make sure the compile uses -fno-implicit-template
> AND the macro ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
> is turned on.

-fno-implicit-templates is broken in the Tornado 1.0.1 g++
for some CPUs.  Maybe PPC 603E, though I'd be a bit surprised.
You might ask Wind River about it.  But first, I'd check to
make sure that -fno-implicit-templates (with trailing s) is
really enabled and doing the expected thing.

Thanks,
David

#13 From: Dave Hall <David.Hall@...>
Date: Wed Jan 19, 2000 4:23 pm
Subject: Undefined Symbols - libACE.so for vxWorks
David.Hall@...
Send Email Send Email
 

    ACE VERSION: 5.0.9

    HOST MACHINE and OPERATING SYSTEM:
        Sun Sparc Station
        SunOS bud1.aero2k1.net 5.7 Generic sun4m sparc SUNW,SPARCstation-20
    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
        Gespac PCIPPC3 (Power PC 603E)
        Tornado 1.0.1
    COMPILER NAME AND VERSION (AND PATCHLEVEL):
        Reading specs from /export/home0/wind/host/sun4-solaris2/lib/gcc-lib/
powerpc-wrs-vxworks/cygnus-2.7.2-960126/specs
gcc version cygnus-2.7.2-960126




    AREA/CLASS/EXAMPLE AFFECTED:
[What example failed?  What module failed to compile?]

        I can not load libACE.so to my vxWorks target. I get a zillion "Undefined Symbols".
Here's a partial listing:

-> ld< libACE.so
Undefined symbols:
ACE_Select_Reactor_T<ACE_Select_Reactor_Token_T<ACE_Token> >::set_sig_handler(ACE_Sig_Handler *)
ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Filecache_Object *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>::open(unsigned int, ACE_Allocator *)
ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>::done(void) const
ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor>::ACE_Double_Linked_List_Iterator_Base(ACE_Double_Linked_List<ACE_Thread_Descriptor> &)
ACE_Timer_Node_T<ACE_Event_Handler *>::ACE_Timer_Node_T(void)
ACE_Cleanup_Adapter<ACE_RW_Thread_Mutex>::ACE_Cleanup_Adapter(void)
ACE_Cleanup_Adapter<ACE_Recursive_Thread_Mutex>::ACE_Cleanup_Adapter(void)
ACE_Managed_Object<ACE_Recursive_Thread_Mutex>::get_preallocated_object(ACE_Object_Manager::Preallocated_Object)
ACE_Managed_Object<ACE_Null_Mutex>::get_preallocated_object(ACE_Object_Manager::Preallocated_Object)
ACE_TSS<ACE_TPQ_Entry>::ACE_TSS(ACE_TPQ_Entry *)
ACE_Auto_Basic_Array_Ptr<char>::ACE_Auto_Basic_Array_Ptr(char *)
ACE_TSS<ACE_SOCK_Stream>::ACE_TSS(ACE_SOCK_Stream *)
ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options, ACE_RW_Process_Mutex>::ACE_Malloc(char const *, char const *, void const *)
ACE_Unbounded_Queue<ACE_CString>::ACE_Unbounded_Queue(ACE_Allocator *)
ACE_Double_Linked_List_Iterator_Base<ACE_DLList_Node>::ACE_Double_Linked_List_Iterator_Base(ACE_Double_Linked_List<ACE_DLList_Node> &)
ACE_Select_Reactor_T<ACE_Select_Reactor_Token_T<ACE_Token> >::current_info(int, unsigned int &)
ACE_Guard<ACE_Lock>::ACE_Guard(ACE_Lock &)
ACE_Allocator_Adapter<ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options, ACE_Null_Mutex> >::ACE_Allocator_Adapter(char const *)
ACE_Hash_Map_Manager_Ex<ACE_NS_String, ACE_NS_Internal, ACE_Hash<ACE_NS_String>, ACE_Equal_To<ACE_NS_String>, ACE_Null_Mutex>::open(unsigned int, ACE_Allocator *)
ACE_Unbounded_Queue<char *>::ACE_Unbounded_Queue(ACE_Allocator *)
ACE_Guard<ACE_Thread_Mutex>::ACE_Guard(ACE_Thread_Mutex &)
ACE_Double_Linked_List<ACE_Thread_Descriptor>::ACE_Double_Linked_List(ACE_Allocator *)
ACE_Unbounded_Queue<int>::ACE_Unbounded_Queue(ACE_Allocator *)
ACE_Cleanup_Adapter<ACE_Mutex>::ACE_Cleanup_Adapter(void)
ACE_Double_Linked_List_Iterator_Base<ACE_DLList_Node>::done(void) const
ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>::ACE_Timer_Queue_Iterator_T(void)
ACE_Double_Linked_List_Iterator_Base<ACE_Thread_Descriptor_Base>::next(void) const
ACE_Map_Manager<ACE_Token_Name, ACE_RWLock_Invariants *, ACE_Null_Mutex>::open(unsigned int, ACE_Allocator *)
ACE_Guard<ACE_RW_Thread_Mutex>::ACE_Guard(ACE_RW_Thread_Mutex &)
ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_Filecache_Object *, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex>::close(void)
ACE_Unbounded_Queue<ACE_Event_Tuple>::ACE_Unbounded_Queue(ACE_Allocator *)




    DOES THE PROBLEM AFFECT:
        COMPILATION?  NO



        LINKING? NO
            On Unix systems, did you run make realclean first?YES
        EXECUTION?  Yes
        OTHER (please specify)?
    SYNOPSIS:
        ACE library is NG

    DESCRIPTION: See above

    REPEAT BY: Any download of libACE.so
[What you did to get the error; include test program or session
transcript if at all possible.  ]

    SAMPLE FIX/WORKAROUND:   N/A
[If available ]


Here's what I have done so far to research this problem:

Investigate the ace_ld perl script to make double sure the
compile_c++/munch/compile_c/ld operation is OK (looks ok)

Make sure the compile uses -fno-implicit-template
AND the macro ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
is turned on.
I am using config-vxworks5.x.h for ACE_ROOT/ace/config.h
and
platform_vxworks5.x_g++.GNU for ACE_ROOT/include/makeinclude/platform_macros.GNU

I have rebuilt my target kernel using the mandatory
flags in configAll.h
I have "C++ Constructors/Destructors Strategy is AUTOMATIC"




Please Help!!




----------------------------------------------------------------------
David Hall
Space Science Dept.
Dynacs Engineering Co.
2001 Aerospace Pkwy
Brookpark, OH
        44142
216-977-1294

#12 From: Greg Gallant <gcg@...>
Date: Tue Jan 18, 2000 4:20 pm
Subject: RE: ACE_Process_Manager (Win32): Not removing itself f rom ACE_Reactor
gcg@...
Send Email Send Email
 
> From: Douglas C. Schmidt [mailto:schmidt@...]
>
> >> I've been away from using ACE for about a year,
>
> Right -- weren't you at John Hopkins APL last time?
>

Right!  R&D (for 12 years) was great, but the allure of working
on commercial products became too strong.

>
> >> Here's a bug (I think) with ACE_Process_Manager on WIN32.
>
> Great, thanks for reporting it.  I've added your fix to the next beta
> release.
>

Thank you.

Greg Gallant

#11 From: "Douglas C. Schmidt" <schmidt@...>
Date: Tue Jan 18, 2000 4:10 am
Subject: Re: ACE_Process_Manager (Win32): Not removing itself from ACE_Reactor
schmidt@...
Send Email Send Email
 
Hi Gret,

>> I've been away from using ACE for about a year,

Right -- weren't you at John Hopkins APL last time?

>> and am happy to be able to get back to it.

Cool!

>> Here's a bug (I think) with ACE_Process_Manager on WIN32.

Great, thanks for reporting it.  I've added your fix to the next beta
release.

Take care,

         Doug
--
Dr. Douglas C. Schmidt, Associate Professor  TEL: (949) 824-1901
Dept of Electrical & Computer Engineering    FAX: (949) 824-2321
616E Engineering Tower                       WEB: www.eng.uci.edu/~schmidt/
University of Calfornia, Irvine, 92697-2625  NET: schmidt@...

#10 From: "Douglas C. Schmidt" <schmidt@...>
Date: Tue Jan 18, 2000 4:03 am
Subject: Re: Orb Services: Compiling Notify_Filter_i.cpp
schmidt@...
Send Email Send Email
 
Hi Alex,

>>     ACE VERSION: 5.0.12
>>
>>     HOST MACHINE and OPERATING SYSTEM:
>> 		 Intel Celeron / Windows NT 4.0 SP3
>>
>>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
>> 		 MS VS v5.0 sp3
>>
>>     AREA/CLASS/EXAMPLE AFFECTED:
>> The Notify_Filter_i.cpp failed to compile
>>
>>     SYNOPSIS:
>> During comilation of the ORB Services DLL project the file
>> Notify_Filter_i.cpp fails to compile.
>> All depend projects have compiled correctly.
>>
>>     DESCRIPTION:
>> The Error the compiler produces is in the file
>>
>> Containers_T.i(311) : error C2300:
>> 'TAO_Notify_Filter_i::Notify_Constraint_Expr' :
>>  class does not have a destructor called '~T'
>>
>> The problem seems to be with the line.
>> 	  ACE_DES_ARRAY_FREE (this->array_,
>>                       this->max_size_,
>>                       this->allocator_->free,
>>                       T);

This sounds like some type of configuration problem with ACE or your
version of MSVC++.  I don't think we have any MSVC 5.0 versions
running in our lab anymore, so you may need to help track this down
since I don't think we can reproduce it at WU or UCI.

Bala, since Pradeep isn't back from India yet, can you please add this
to bugzilla so we can track it?  Please attribute it to

Alex Scholte <Alex.Scholte@...>

Thanks,

         Doug
--
Dr. Douglas C. Schmidt, Associate Professor  TEL: (949) 824-1901
Dept of Electrical & Computer Engineering    FAX: (949) 824-2321
616E Engineering Tower                       WEB: www.eng.uci.edu/~schmidt/
University of Calfornia, Irvine, 92697-2625  NET: schmidt@...

#9 From: "Scholte, Alex" <Alex.Scholte@...>
Date: Tue Jan 18, 2000 3:15 am
Subject: Orb Services: Compiling Notify_Filter_i.cpp
Alex.Scholte@...
Send Email Send Email
 
Sorry if this has been posted twice; I seem to be having trouble with our
mail server.

>     ACE VERSION: 5.0.12
>
>     HOST MACHINE and OPERATING SYSTEM:
> 		 Intel Celeron / Windows NT 4.0 SP3
>
>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
> 		 MS VS v5.0 sp3
>
>     AREA/CLASS/EXAMPLE AFFECTED:
> The Notify_Filter_i.cpp failed to compile
>
>     SYNOPSIS:
> During comilation of the ORB Services DLL project the file
> Notify_Filter_i.cpp fails to compile.
> All depend projects have compiled correctly.
>
>     DESCRIPTION:
> The Error the compiler produces is in the file
>
> Containers_T.i(311) : error C2300:
> 'TAO_Notify_Filter_i::Notify_Constraint_Expr' :
>  class does not have a destructor called '~T'
>
> The problem seems to be with the line.
> 	  ACE_DES_ARRAY_FREE (this->array_,
>                       this->max_size_,
>                       this->allocator_->free,
>                       T);
>
>     REPEAT BY:
> Compile
>
>
> regards Alex

#8 From: "Scholte, Alex" <Alex.Scholte@...>
Date: Tue Jan 18, 2000 2:48 am
Subject: Orb Services: Compiling Notify_Filter_i.cpp
Alex.Scholte@...
Send Email Send Email
 
ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM:
			 Intel Celeron / Windows NT 4.0 SP3

     COMPILER NAME AND VERSION (AND PATCHLEVEL):
			 MS VS v5.0 sp3

     AREA/CLASS/EXAMPLE AFFECTED:
The Notify_Filter_i.cpp failed to compile

     SYNOPSIS:
During comilation of the ORB Services DLL project the file
Notify_Filter_i.cpp fails to compile.
All depend projects have compiled correctly.

     DESCRIPTION:
The Error the compiler produces is in the file

Containers_T.i(311) : error C2300:
'TAO_Notify_Filter_i::Notify_Constraint_Expr' :
	 class does not have a destructor called '~T'

The problem seems to be with the line.
	   ACE_DES_ARRAY_FREE (this->array_,
                       this->max_size_,
                       this->allocator_->free,
                       T);

     REPEAT BY:
Compile


regards Alex

#7 From: Greg Gallant <gcg@...>
Date: Mon Jan 17, 2000 11:47 pm
Subject: ACE_Process_Manager (Win32): Not removing itself from ACE_Reactor
gcg@...
Send Email Send Email
 
Hi all,

I've been away from using ACE for about a year, and am happy to be
able to get back to it.  Here's a bug (I think) with
ACE_Process_Manager on WIN32.

Greg Gallant

     ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM:
       (P450, 128Meg), (NT4 SP5)
     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
     COMPILER NAME AND VERSION (AND PATCHLEVEL):
       VC++ 6.0 SP3

     AREA/CLASS/EXAMPLE AFFECTED:
       class ACE_Process_Manager does not clean its Exit_Handlers up
properly.

     DOES THE PROBLEM AFFECT:
         COMPILATION?
             No.
         LINKING?
             No.
         EXECUTION?
             Yes. Especially noticeable when ACE_Process_Manager is *not* a
             singleton.
         OTHER (please specify)?

     SYNOPSIS:
       Under WIN32, ACE_Process_Manager registers itself as an event handler
       with ACE_Reactor, but does not properly unregister itself when it
       closes.

     DESCRIPTION:
       For error to be noticed, you must instantiate ACE_Process_Manager with
       an ACE_Reactor.  ACE_Process_Manager should *not* be run as a
singleton.
       It must be instantiated such that it will be destroyed *before* the
       ACE_Reactor is destroyed.

       When you call ACE_Process_Manager::spawn, the newly created process is
       added to the ACE_Process_Manager's process table and (under WIN32) the
       ACE_Process_Manager is registered as an event handler for the new
       process (ace/Process_Manager.cpp, line 523) using this call:

          r->register_handler (this, proc->gethandle ());

       This will happen for every process spawned. Thus, ACE_Process_Manager
       will potentially be associated with more than one WIN32 process
handle.

       When the ACE_Process_Manager is destroyed, the dtor calls
       ACE_Process_Manager::close which (for WIN32) attempts to remove
       ACE_Process_Manager as an Event_Handler from the ACE_Reactor using the
       following code (ace/Process_Manager.cpp, line 256)

          this->reactor ()->remove_handler (this, 0);

       This version of ACE_Reactor::remove_handler is:

          int ACE_Reactor::remove_handler
          (
                ACE_Event_Handler *event_handler,
                ACE_Reactor_Mask mask
          );

       It calls event_handler->get_handle() to obtain the handle to which
       'event_handler' is associated.  The problem is that
       ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so the
       ACE_Reactor never properly unregisters the ACE_Process_Manager.


     REPEAT BY:
       Here is a sample program that will replicate the error...

       #include "ace/OS.h"
       #include "ace/Process_Manager.h"

       static int
       run_process ()
       {
          ACE_Process_Manager* ace_process_mgr;
          ACE_NEW_RETURN (
             ace_process_mgr,
             ACE_Process_Manager (
                ACE_Process_Manager::DEFAULT_SIZE,
                ACE_Reactor::instance ()
             ),
             -1
          );

          // Spawn a process ...
          ACE_Process_Options options;
          options.command_line (ASYS_TEXT ("cmd.exe"));
          pid_t pid = ace_process_mgr->spawn (options);

          if (pid < 0)
             return -1;

          // Wait a bit...
          ACE_OS::sleep (5);

          // Now clean up ACE_Process_Manager
          if (ace_process_mgr->terminate (pid) == 0)
             if (ace_process_mgr->wait (pid) == pid) {
                delete ace_process_mgr;
                return 0;
             }
          return -1;
       }

       int
       main (int argc, char** argv)
       {
          ACE::init ();
          if (-1 == run_process ()) {
             ACE_DEBUG (
                (LM_DEBUG,
                 ASYS_TEXT ("Unexpected problem with this sample\n"))
             );
          }

          // Exception will occur on close of ACE_Reactor singleton.
          ACE::fini ();
          return 0;
       }

     SAMPLE FIX/WORKAROUND:

       Here is a patch to fix the problem...

*** Process_Panager.cpp Tue Dec 28 16:43:18 1999
--- new_Process_Manager.cpp Mon Jan 17 16:24:14 2000
***************
*** 252,262 ****
--- 252,264 ----
   {
     ACE_TRACE ("ACE_Process_Manager::close");

+ #if !defined (ACE_WIN32)
     if (this->reactor ())
       {
         this->reactor ()->remove_handler (this, 0);
         this->reactor (0);
       }
+ #endif /*  !ACE_WIN32  */

     ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1));

***************
*** 580,585 ****
--- 582,594 ----
            0);
         this->process_table_[i].exit_notify_ = 0;
       }
+
+ #if defined (ACE_WIN32)
+   ACE_Reactor *r = this->reactor ();
+   if (r != 0)
+     r->remove_handler (this->process_table_[i].process_->gethandle (),
+                        ACE_Event_Handler::DONT_CALL);
+ #endif /*  ACE_WIN32  */

     this->process_table_[i].process_->unmanage ();

#6 From: Jonathan Lindo <jonathan@...>
Date: Mon Jan 17, 2000 8:13 am
Subject: Re: Win98 Unicode: All UNICODE apps fail at startup.
jonathan@...
Send Email Send Email
 
Greets all,

Although for many people here, this is likely common knowledge,
I recently discovered that Windows95/98 does not inherently
support UNICODE programming.

Quoting from an MSDN page:

http://msdn.microsoft.com/library/psdk/win95/chilimit_21rn.htm

"By design, functions that take string parameters can handle either Unicode™
(wide character) or ANSI strings. However, Windows 95/98 does not implement the
Unicode (or wide character) version of most functions. With few exceptions,
these functions are implemented as stubs that simply return an error value.
However,
Windows 95/98 does provide Unicode implementations of the following functions."

This would seem to explain difficulties in producing UNICODE ACE
apps under Win98.

Cheers all,
Jonathan.


Jonathan Lindo wrote:
>
>     ACE VERSION: 5.0.12
>
>     HOST MACHINE and OPERATING SYSTEM:
>
> Pentium III 500Mhz
> Windows 98
>
>     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
>
> MSVC 6.0 Professional SP3
>
>     AREA/CLASS/EXAMPLE AFFECTED:
>
> All applications linked against ACEUD.DLL fail at run-time
> under Win98.
>
>     DOES THE PROBLEM AFFECT:
>         COMPILATION?
>
> Compilation is fine, but here is my config.h:
>
> ---------------
> #define ACE_HAS_WINNT4 0
> #define ACE_HAS_STANDARD_CPP_LIBRARY 1
>
> #include "ace/config-win32.h"
> ---------------
>
>         LINKING?
>
> No problems linking.
>
>         EXECUTION?
>
> At execution, the app crashes immediately during Object_Manager
> initialization.
>
> Stack trace from MSVC after the crash is as follows:
>
> KERNEL32! bff8ac13()
> ACE_OS::cond_destroy(ACE_cond_t * 0x009704c0) line 5523 + 12 bytes
> ACE_OS::rwlock_init(ACE_rwlock_t * 0x009704a4, int 1, const unsigned short *
0x00000000, void * 0x00000000) line 5493 + 12 bytes
> ACE_RW_Mutex::ACE_RW_Mutex(int 1, const unsigned short * 0x00000000, void *
0x00000000) line 199+ 21 bytes
> ACE_RW_Thread_Mutex::ACE_RW_Thread_Mutex(const unsigned short * 0x00000000,
void * 0x00000000) line 1002
>
ACE_Cleanup_Adapter<ACE_RW_Thread_Mutex>::ACE_Cleanup_Adapter<ACE_RW_Thread_Mute\
x>() line 9 + 58 bytes
> ACE_Object_Manager::init() line 197 + 37 bytes
> ACE_Object_Manager::ACE_Object_Manager() line 278
> main(int 1, char * * 0x00970d20) line 90 + 52 bytes
> mainCRTStartup() line 338 + 17 bytes
> KERNEL32! bff8b560()
> KERNEL32! bff8b412()
> KERNEL32! bff89dd5()
>
> Crash occurs in ACE_OS::cond_destroy():
>
> int
> ACE_OS::cond_destroy (ACE_cond_t *cv)
> {
>   ACE_TRACE ("ACE_OS::cond_destroy");
> # if defined (ACE_HAS_THREADS)
> #   if defined (ACE_HAS_WTHREADS)
>   ACE_OS::event_destroy (&cv->waiters_done_);
> #   elif defined (VXWORKS) || defined (ACE_PSOS)
>   ACE_OS::sema_destroy (&cv->waiters_done_);
> #   endif /* VXWORKS */
>   ACE_OS::thread_mutex_destroy (&cv->waiters_lock_);
>   return ACE_OS::sema_destroy (&cv->sema_);
> # else
>   ACE_UNUSED_ARG (cv);
>   ACE_NOTSUP_RETURN (-1);
> # endif /* ACE_HAS_THREADS */
> }
>
>         OTHER (please specify)?
>
>     SYNOPSIS:
>
> Test apps compiled against the ACED.DLL run without problems.
> Compiling and linking against Unicode ACEUD.DLL causes a
> run-time crash.
>
>     DESCRIPTION:
>
> After modifying test apps Task_Test and SOCK_Test to use the
> Unicode DLL by changing aced.dll to aceud.dll in the link line,
> and adding UNICODE to the preprocessor defines, the app crashes
> immediately.
>
>     REPEAT BY:
>
> Under Windows98, compile and link any app using the Unicode
> ACEUD.DLL and defining UNICODE as a preprocessor.
>
>     SAMPLE FIX/WORKAROUND:
>
> None.

#5 From: "David Gillies (root)" <root@...>
Date: Sun Jan 16, 2000 4:51 am
Subject: Compilation failure under SunCC 4.2/Solaris 7
root@...
Send Email Send Email
 
ACE VERSION: 5.0.12

My machine is a Sun Ultra 5 333. I use Solaris 7 i.e. SunOS 5.7.
The target is this machine. I have attempted to build ACE using the
Workshop Compiler v4.2 at patch level 104631-07.
The output of CC -V yields:
CC: WorkShop Compilers 4.2 16 Jun 1998 C++ 4.2 patch 104631-07

     AREA/CLASS/EXAMPLE AFFECTED:
[What example failed?  What module failed to compile?]
The problem affects compilation. It fails. The contents of my config.h
are:

/* -*- C++ -*- */
// $Id: config-sunos5.4-sunc++-4.x.h,v 4.28 1998/12/29 15:47:28 levine Exp $

// The following configuration file is designed to work for SunOS 5.4
// platforms using the SunC++ 4.0.x compiler.

#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H

#if ! defined (__ACE_INLINE__)
# define __ACE_INLINE__
#endif /* ! __ACE_INLINE__ */

#define ACE_HAS_TEMPLATE_SPECIALIZATION

// Maximum compensation (10 ms) for early return from timed ::select ().
#if !defined (ACE_TIMER_SKEW)
# define ACE_TIMER_SKEW 10 * 1000
#endif /* ACE_TIMER_SKEW */

// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT

(config.h is a dynamic link to config-sunos5.4-sunc++-4.x.h)

--

My platform_macros.GNU is a dynamic link to platform_sunos5_sunc++.GNU.

     SYNOPSIS:
Compilation fails with numerous compile-time errors.

     DESCRIPTION:
During the make I receive (multiple times) one warning and three errors.
For example:

make[2]: Leaving directory `/space/ACE/ACE_wrappers/examples/Naming'
make[2]: Entering directory `/space/ACE/ACE_wrappers/examples/Reactor'
make[3]: Entering directory `/space/ACE/ACE_wrappers/examples/Reactor/Dgram'
CC -mt -g -features=castop -DACE_LACKS_RTTI -noex   -I.
-I/space/ACE/ACE_wrappers  -c -o .obj/CODgram.o CODgram.cpp
"/space/ACE/ACE_wrappers/ace/OS.h", line 2815: Error: Only one of a set of
overloaded functions can be "C" or "Pascal".
"/space/ACE/ACE_wrappers/ace/OS.i", line 5010: Warning (Anachronism): Formal
argument 5 of type timeval* in call to select(int, fd_set*, fd_set*, fd_set*,
timeval*) is being passed const timeval*.
"/space/ACE/ACE_wrappers/ace/OS.i", line 5010: Note: Type "CC -migration" for
more on anachronisms.
"/space/ACE/ACE_wrappers/ace/OS.i", line 5031: Warning (Anachronism): Formal
argument 5 of type timeval* in call to select(int, fd_set*, fd_set*, fd_set*,
timeval*) is being passed const timeval*.
"/space/ACE/ACE_wrappers/ace/OS.i", line 10305: Warning (Anachronism): Formal
argument 5 of type timeval* in call to select(int, fd_set*, fd_set*, fd_set*,
timeval*) is being passed const timeval*.
"/space/ACE/ACE_wrappers/ace/Signal.i", line 154: Error: Cannot assign void(*)()
to void(*)(int).
2 Error(s) and 3 Warning(s) detected.

The modules causing the errors are exclusively Signal.i and OS.i.

Repeatability:
This is a compile-time bug. It is 100% repeatable.
I have attempted to use g++ 2.95, with similar results, using
platform_macro.GNU = platform_sunos5_g++.GNU with
config.h = config-sunos5.7.h AND config-sunos5.4-g++.h. No luck.

_____________________________________________
David Gillies
INTACGlobalInvestments.com Ltd.
San Jose
Costa Rica

email: root@...
_____________________________________________

#4 From: Jonathan Lindo <jonathan@...>
Date: Sat Jan 15, 2000 11:53 am
Subject: Win98 Unicode: All UNICODE apps fail at startup.
jonathan@...
Send Email Send Email
 
ACE VERSION: 5.0.12

     HOST MACHINE and OPERATING SYSTEM:

Pentium III 500Mhz
Windows 98

     TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
     COMPILER NAME AND VERSION (AND PATCHLEVEL):

MSVC 6.0 Professional SP3

     AREA/CLASS/EXAMPLE AFFECTED:

All applications linked against ACEUD.DLL fail at run-time
under Win98.

     DOES THE PROBLEM AFFECT:
         COMPILATION?

Compilation is fine, but here is my config.h:

---------------
#define ACE_HAS_WINNT4 0
#define ACE_HAS_STANDARD_CPP_LIBRARY 1

#include "ace/config-win32.h"
---------------

         LINKING?

No problems linking.

         EXECUTION?

At execution, the app crashes immediately during Object_Manager
initialization.

Stack trace from MSVC after the crash is as follows:

KERNEL32! bff8ac13()
ACE_OS::cond_destroy(ACE_cond_t * 0x009704c0) line 5523 + 12 bytes
ACE_OS::rwlock_init(ACE_rwlock_t * 0x009704a4, int 1, const unsigned short *
0x00000000, void * 0x00000000) line 5493 + 12 bytes
ACE_RW_Mutex::ACE_RW_Mutex(int 1, const unsigned short * 0x00000000, void *
0x00000000) line 199+ 21 bytes
ACE_RW_Thread_Mutex::ACE_RW_Thread_Mutex(const unsigned short * 0x00000000, void
* 0x00000000) line 1002
ACE_Cleanup_Adapter<ACE_RW_Thread_Mutex>::ACE_Cleanup_Adapter<ACE_RW_Thread_Mute\
x>() line 9 + 58 bytes
ACE_Object_Manager::init() line 197 + 37 bytes
ACE_Object_Manager::ACE_Object_Manager() line 278
main(int 1, char * * 0x00970d20) line 90 + 52 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! bff8b560()
KERNEL32! bff8b412()
KERNEL32! bff89dd5()

Crash occurs in ACE_OS::cond_destroy():

int
ACE_OS::cond_destroy (ACE_cond_t *cv)
{
   ACE_TRACE ("ACE_OS::cond_destroy");
# if defined (ACE_HAS_THREADS)
#   if defined (ACE_HAS_WTHREADS)
   ACE_OS::event_destroy (&cv->waiters_done_);
#   elif defined (VXWORKS) || defined (ACE_PSOS)
   ACE_OS::sema_destroy (&cv->waiters_done_);
#   endif /* VXWORKS */
   ACE_OS::thread_mutex_destroy (&cv->waiters_lock_);
   return ACE_OS::sema_destroy (&cv->sema_);
# else
   ACE_UNUSED_ARG (cv);
   ACE_NOTSUP_RETURN (-1);
# endif /* ACE_HAS_THREADS */
}

         OTHER (please specify)?

     SYNOPSIS:

Test apps compiled against the ACED.DLL run without problems.
Compiling and linking against Unicode ACEUD.DLL causes a
run-time crash.


     DESCRIPTION:

After modifying test apps Task_Test and SOCK_Test to use the
Unicode DLL by changing aced.dll to aceud.dll in the link line,
and adding UNICODE to the preprocessor defines, the app crashes
immediately.


     REPEAT BY:

Under Windows98, compile and link any app using the Unicode
ACEUD.DLL and defining UNICODE as a preprocessor.


     SAMPLE FIX/WORKAROUND:

None.

     -----------------------------_____--__------------------------------
    Jonathan Lindo               / /   \/ /       Muse Communications Corp
    Software Developer       ___/ /   \/ /___                San Mateo, CA
     -----------------------/____/____/_____/----------------------------

#3 From: Mauro Cadorin <Mcadorin@...>
Date: Tue Jan 11, 2000 8:09 pm
Subject: Check this
Mcadorin@...
Send Email Send Email
 
Have fun with these links.
Bye.

#2 From: Dave Hall <David.Hall@...>
Date: Mon Jan 10, 2000 7:44 pm
Subject: ACE/tests Dont Run
David.Hall@...
Send Email Send Email
 

    ACE VERSION: 5.0.9

    HOST MACHINE and OPERATING SYSTEM:
    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
    COMPILER NAME AND VERSION (AND PATCHLEVEL):

uname -sa
SunOS bud1.aero2k1.net 5.7 Generic sun4m sparc SUNW,SPARCstation-20
gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)

make -v
GNU Make version 3.77, by Richard Stallman and Roland McGrath.
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98
        Free Software Foundation, Inc.




    AREA/CLASS/EXAMPLE AFFECTED:
[What example failed?  What module failed to compile?]
        I can not run the following ACE tests:

DLL_Test
Malloc_Test

Here are debugger traces:

bud1.aero2k1.net# gdb Malloc_Test
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...
(gdb) run
Starting program: /export/home0/TAO/ACE/tests/Malloc_Test
[New LWP    2        ]
[New LWP    3        ]

Program received signal SIGBUS, Bus error.
0x17b08 in initialize (allocator=0x2ee18) at Malloc_Test.cpp:71
71        *temp = 5.0;
(gdb) where
#0  0x17b08 in initialize (allocator=0x2ee18) at Malloc_Test.cpp:71
#1  0x18544 in main (argc=122080) at Malloc_Test.cpp:225
(gdb)







gdb DLL_Test
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...
(gdb) run
Starting program: /export/home0/TAO/ACE/tests/DLL_Test
[New LWP    2        ]
[New LWP    3        ]

Program received signal SIGSEGV, Segmentation fault.
0xeea24de0 in __do_global_dtors_aux ()
   from /export/home0/TAO/ACE/tests/./libDLL_Test.so
(gdb)
(gdb)
(gdb) where
#0  0xeea24de0 in __do_global_dtors_aux ()
   from /export/home0/TAO/ACE/tests/./libDLL_Test.so
#1  0xeea2740c in _fini () at ../../../libio/fstream.cc:45
#2  0xef7d31bc in ?? ()
#3  0xef7d37e8 in ?? ()
#4  0xef7dda80 in ?? ()
#5  0xef6bfd4c in ACE_DLL::close (this=0xeffffb80) at DLL.cpp:112
#6  0xef6bfbfc in ACE_DLL::~ACE_DLL (this=0xeffffb80, __in_chrg=2)
    at DLL.cpp:41
#7  0x13a18 in main (argc=0, argv=0xeffffbfc) at DLL_Test.cpp:132





    DOES THE PROBLEM AFFECT:
        COMPILATION?  NO
            If so, what do your $ACE_ROOT/ace/config.h and
            $ACE_ROOT/include/makeinclude/platform_macros.GNU contain?


bud1.aero2k1.net# pwd
/export/home0/TAO/ACE/ace
bud1.aero2k1.net# echo $ACE_ROOT
/export/home0/TAO/ACE
bud1.aero2k1.net# diff config.h config-sunos5.7.h

        (No difference)


bud1.aero2k1.net# cd $ACE_ROOT/include/makeinclude
bud1.aero2k1.net# diff platform_macros.GNU platform_sunos5_g++.GNU
        (No difference)


        LINKING? NO
            On Unix systems, did you run make realclean first?YES
        EXECUTION?   YES -
        OTHER (please specify)? Basic_Types_Test and all other ACE/tests works OK.

    SYNOPSIS:
                Can not run 2 ace tests out of total test suite.

    DESCRIPTION: See Above

    REPEAT BY: Any use of run_tests.sh or invoking test stand-alone.

[What you did to get the error; include test program or session
transcript if at all possible.  ]

    SAMPLE FIX/WORKAROUND:   N/A
[If available ]


My previous problem (Can Not Run Any Tests) was casued by a bad build of gcc. I got that fixed. This is the latest problem.
Please Help!!




----------------------------------------------------------------------
David Hall
Space Science Dept.
Dynacs Engineering Co.
2001 Aerospace Pkwy
Brookpark, OH
        44142
216-977-1294

#1 From: Irfan Pyarali <irfan@...>
Date: Sat Jan 8, 2000 12:27 am
Subject: test for http://www.egroups.com/group/ace-bugs/
irfan@...
Send Email Send Email
 
Messages 1 - 30 of 6171   Newest  |  < Newer  |  Older >  |  Oldest
Advanced
Add to My Yahoo!      XML What's This?

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help