WideStudio/MWT Class Reference

WideStudio/MWT Home
Up to


クラスの型

WSDsemaphore

メソッド関数仕様



getNewInstance() 関数の説明

書式
WSDsemaphore* WSDsemaphore::getNewInstance()
機能
WSDsemaphore インスタンスを取得します。 WSDsemaphore インスタンスは、new 演算子で生成せず、 この getNewInstance() メンバ関数で生成します。
処理
引数
なし。
返値
WSDsemaphore インスタンスへのポインタ
注意
この関数はスタティック関数です。
サンプル
initialize() を参照してください。



initialize 関数の説明

書式
long initialize()
機能
セマフォを初期化します。 使用前に、一度初期化を行なって下さい。
処理
引数
なし。
返値
WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
メインスレッドとサブスレッドにおいて 同期処理を行なう例です。
WSDsemaphore* sem = NULL;
void* thread_proc(WSDsemaphore* thr,void* data){
  sem->lock(); //同期待ち

  //スレッドで処理...
  return NULL;
}
void sample_event_procedure(WSCbase* object){
  //排他を行なうためのミューテックスを生成
  sem = WSDsemaphore::getNewInstance();
  sem->initialize();
  sem->lock();

  //スレッドインスタンスを生成
  WSDthread* thr = WSDthread::getNewInstance();

  //スレッドとして起動する関数を設定。
  thr->setFunction(thread_proc);

  //スレッドを生成
  thr->createThread(NULL);

  // セマフォを解除し同期待ちしているスレッドを起こす
  sem->unlock();
}



lock 関数の説明

書式
long lock()
機能
セマフォをロックします。
処理
引数
なし。
返値
WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
initialize() を参照してください。



unlock 関数の説明

書式
long unlock()
機能
セマフォを解除します。
処理
引数
なし。
返値
WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
initialize() を参照してください。


Document Release 3.90

For Use with WideStudio/MWT Release 3.90, Summer 2005


WideStudio/MWT Home | Up to

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: June 25, 2005