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