Wide Studio Object Reference

Wide Studio 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.70

For Use with Wide Studio Release 3.70, Spring 2004


WideStudio Home | Up to

Copyright(C) WideStudio Development Team, 1999-2004 Last modified: May. 25, 2004