2018-01-04 19:52:25 +01:00
|
|
|
package jp.juggler.subwaytooter.util;
|
|
|
|
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
|
2018-01-10 16:47:35 +01:00
|
|
|
// このクラスをkotlinに変換しないこと
|
2018-01-04 19:52:25 +01:00
|
|
|
// Kotlin は wait/notify をサポートしてない
|
|
|
|
// しかしConcurrent ライブラリには notify() を直接表現できるクラスがない
|
|
|
|
// 仕方がないのでJavaコード経由でwait/notifyを呼び出す
|
2018-01-21 13:46:36 +01:00
|
|
|
|
|
|
|
@SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
|
2018-01-04 19:52:25 +01:00
|
|
|
public class WaitNotifyHelper {
|
|
|
|
|
2018-01-21 13:46:36 +01:00
|
|
|
public static void waitEx( @NonNull Object obj, long ms ){
|
|
|
|
try{
|
2018-01-04 19:52:25 +01:00
|
|
|
synchronized( obj ){
|
2018-01-21 13:46:36 +01:00
|
|
|
obj.wait( ms );
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
2018-01-21 13:46:36 +01:00
|
|
|
}catch( InterruptedException ignored ){
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
|
|
|
}
|
2018-01-21 13:46:36 +01:00
|
|
|
|
|
|
|
public static void notifyEx( @NonNull Object obj ){
|
|
|
|
try{
|
2018-01-04 19:52:25 +01:00
|
|
|
synchronized( obj ){
|
|
|
|
obj.notify();
|
|
|
|
}
|
2018-01-21 13:46:36 +01:00
|
|
|
}catch( Throwable ignored ){
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|