Resolved Server : остановка программы при финише

Автор темы #1
Дата рег
19 Фев 2011
Сообщения
197
Симпатии
72
При установке любого ивента делегацией, без указания не делегированного каллбэка финиша происходит "приостановка работы программы" на финише сервера ( до сохранения дампа мира, без краш дампа, и без корректной остановки ).

Код:
Module Master = null;
 
 
 
void ModuleInit()
 
{
 
	__EventFinish.Subscribe( OnFinish ); // Некорретная остановка сервера при отсутствии этого ивента.
 
	@Master = @Module();
 
}
 
 
 
void OnFinish( )
 
{
 
	Log( "Finish" );
 
}
 
 
 
class Module
 
{
 
	Module( )	{
 
		Log( "Construct");
 
		OnInit( );
 
	}
 
 
 
	~Module( ) {
 
		Log( "Destruct");
 
		OnFinish( );
 
	}
 
 
 
	void OnInit( )
 
	{
 
		__EventGenerateWorld.Subscribe( EventGenerateWorldFunc( @this.OnGenerateWorld ) );
 
		__EventFinish.Subscribe( EventFinishFunc( @this.OnFinish ) );
 
		__EventCritterInit.SubscribeToFirstTime( true, EventCritterInitFunc( @this.OnCritterFirstInit ) );
 
	}
 
 
 
	void OnFinish( )
 
	{
 
		Log( "ThisFinish" );
 
		/*__EventGenerateWorld.Unsubscribe( EventGenerateWorldFunc( @this.OnGenerateWorld ) );
 
		  __EventFinish.Unsubscribe( EventFinishFunc( @this.OnFinish ) );
 
		  __EventCritterInit.UnsubscribeFromFirstTime( true, EventCritterInitFunc( @this.OnCritterFirstInit ) );
 
		  @Master = null;*/
 
	}
 
 
 
	void OnGenerateWorld( uint16& multiplier, uint16& year, uint16& month, uint16& day, uint16& hour, uint16& minute )
 
	{
 
		Log( "this Generated" );
 
	}
 
   
 
	void OnCritterFirstInit( Critter critter, bool firstTime )
 
	{
 
		Log( "OnCritterFirstInit");
 
	}
 
}
 
Последнее редактирование: