2008-10-12 20:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/source/vm/hvm.c
    ! execute hb_vmThreadQuit() after hb_vmStackRelease()

  * harbour/source/vm/thread.c
    * do not destroy critical sections on exit
This commit is contained in:
Przemyslaw Czerpak
2008-10-12 18:31:41 +00:00
parent 51de53494c
commit abfc488c1a
3 changed files with 11 additions and 21 deletions

View File

@@ -8,6 +8,13 @@
2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2008-10-12 20:31 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/vm/hvm.c
! execute hb_vmThreadQuit() after hb_vmStackRelease()
* harbour/source/vm/thread.c
* do not destroy critical sections on exit
2008-10-11 16:59 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* make_b32.mak
* make_vc.mak

View File

@@ -1052,8 +1052,8 @@ HB_EXPORT int hb_vmQuit( void )
hb_gcCollectAll( TRUE );
#if defined( HB_MT_VM )
hb_threadExit();
hb_vmStackRelease(); /* release HVM stack and remove it from linked HVM stacks list */
hb_threadExit();
#else
hb_setRelease( hb_stackSetStruct() ); /* releases Sets */
hb_stackFree();

View File

@@ -175,27 +175,10 @@ void hb_threadInit( void )
void hb_threadExit( void )
{
if( s_fThreadInit )
if( s_pOnceMutex )
{
s_fThreadInit = FALSE;
if( s_pOnceMutex )
{
hb_itemRelease( s_pOnceMutex );
s_pOnceMutex = NULL;
}
#if !defined( HB_MT_VM )
/* nothing to do */
#else
# if defined( HB_CRITICAL_DESTROY ) && defined( HB_CRITICAL_NEED_INIT )
HB_CRITICAL_DESTROY( s_init_mtx );
HB_CRITICAL_DESTROY( s_once_mtx );
HB_CRITICAL_DESTROY( s_thread_mtx );
HB_CRITICAL_DESTROY( s_mutexlst_mtx );
# endif
# if defined( HB_COND_DESTROY ) && defined( HB_COND_NEED_INIT )
HB_COND_DESTROY( s_thread_cond );
# endif
#endif
hb_itemRelease( s_pOnceMutex );
s_pOnceMutex = NULL;
}
}