Wide Studio Object Reference

Wide Studio Home
Up to

## クラスの型

WSDmutex

## メソッド関数仕様

### getNewInstance() 関数の説明

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

### initialize 関数の説明

書式
  long initialize()
機能
  ミューテックスを初期化します。 使用前に、一度初期化を行なって下さい。
処理
引数
  なし。
返値
  WS_NO_ERR= 正常、それ以外はエラー。
注意
サンプル
  複数のスレッドからアクセスされる場合のある処理に対して 排他を行なう例です。

      WSDmutex* mutex = NULL;
      void* thread_proc(WSDmutex* thr,void* data){
        //スレッドで処理...
        mutex->lock(); //排他
        //排他内
        mutex->unlock(); //排他解除
        return NULL;
      }
      void* thread_proc2(WSDmutex* thr,void* data){
        //スレッドで処理...
        mutex->lock(); //排他
        //排他内
        mutex->unlock(); //排他解除
        return NULL;
      }
      void sample_event_procedure(WSCbase* object){
        //排他を行なうためのミューテックスを生成
        mutex = WSDmutex::getNewInstance();
        mutex->initialize();

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

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

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

### 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