排他ほぼ完成か

void read1() {
  int ret;
  while (ret = tryrdlock(&rw)) {
    if (ret==EDEADLK) {
      break;
    } else {
      //エラー処理
    }
    sleep(100);//適当に待機
  }
  //排他でのread作業
  if (ret!=EDEADLK) {
    unlock(&rw);
  }
}
void read2() {
  int ret;
  if (!(ret = tryrdlock(&rw))) {
    if (ret!=EDEADLK) {
      if (ret = rdlock()) {
        //エラー処理
      }
    }
  }
  //排他でのread作業
  if (ret!=EDEADLK) {
    unlock(&rw);
  }
}

となった。今回の条件なら簡略化したread2()で十分だ。これで手元では正しく動いている。でも、移植性についていまいち自信がなかったので2chでこんな感じで良いか質問してみた。
返答:Winにはrwlockがないよ
え?