public Object removeValue( Object key ) { if ( !initialised ){ return( null ); } AESemaphore sem = new AESemaphore( "ValueHolder:remove" ); Object[] request = new Object[]{ key, NULL_VALUE, sem }; synchronized( request_queue ){ request_queue.add( request ); } request_sem.release(); sem.reserve(); return(request[1]); }
public boolean isInitialised() { return( init_complete.isReleasedForever()); }
@Override public void widgetDisposed(DisposeEvent arg0) { window = null; class_sem.releaseAllWaiters(); } });
public void setReservedThreadCount( int res ) { synchronized( this ){ if ( res < 0 ){ res = 0; }else if ( res > max_size ){ res = max_size; } int diff = res - reserved_actual; while( diff < 0 ){ thread_sem.release(); reserved_actual--; diff++; } while( diff > 0 ){ if ( thread_sem.reserveIfAvailable()){ reserved_actual++; diff--; }else{ break; } } reserved_target = res; } }
@Override public void complete( boolean timeout ) { synchronized( rendezvous_lookup_cache ){ AESemaphore sem = (AESemaphore)entry[1]; if ( !sem.isReleasedForever()){ entry[0] = SystemTime.getMonotonousTime(); sem.releaseForever(); } } } });
@Override public String reverseDNSLookup( InetAddress address ) { final AESemaphore sem = new AESemaphore("Utilities:reverseDNS"); final String[] res = { null }; IPToHostNameResolver.addResolverRequest( address.getHostAddress(), new IPToHostNameResolverListener() { @Override public void IPResolutionComplete( String result, boolean succeeded ) { if ( succeeded ){ res[0] = result; } sem.release(); } }); sem.reserve( 60000 ); return( res[0] ); }
@Override public void readCompleted( DiskManagerReadRequest request, DirectByteBuffer data ) { result[0] = data; sem.release(); }
public void waitUntilInitialised() { initialised_sem.reserve(); }
protected void setStream( InputStream _stream ) { stream = _stream; stream_sem.releaseForever(); }
buffer_sem.reserve(); buffer_sem.release(); if ( !buffer_sem.reserveIfAvailable()){
@Override public boolean isEnabled() { if ( plugin_interface == null ){ Debug.out( "Called too early!" ); return false; } if ( plugin_interface.isInitialisationThread()){ if ( !init_sem.isReleasedForever()){ Debug.out( "Initialisation deadlock detected" ); return( true ); } } init_sem.reserve(); return( enabled ); }
sem = new AESemaphore("NDTR::idleWaiter"); if ( sem.reserve( 2500 )){ Logger.log(new LogEvent(LogIDs.CORE, "Waiting for " + pending.getName() + " to complete" ));
if ( !thread_sem.reserveIfAvailable()){ thread_sem.reserve(); if ( queue_when_full && !thread_sem.reserveIfAvailable()){
@Override public void setAsyncStart() { went_async[0] = new AESemaphore( "async" ); }
public boolean isFull() { return( thread_sem.getValue() == 0 ); }
@Override public boolean reserveIfAvailable() { return( sem.reserveIfAvailable()); }
System.out.println( "ThreadPool '" + getName() + "'/" + thread_name_index + ": max=" + max_size + ",sem=[" + thread_sem.getString() + "],busy=" + busy.size() + ",queue=" + task_queue.size());
@Override public void runSupport() { Display display = shell.getDisplay(); final String[] path = { null }; final AESemaphore sem = new AESemaphore("ShareUtils:file"); display.asyncExec(new AERunnable() { @Override public void runSupport() { try{ FileDialog dialog = new FileDialog(shell, SWT.SYSTEM_MODAL | SWT.OPEN); dialog.setFilterPath( TorrentOpener.getFilterPathData() ); dialog.setText(MessageText.getString("MainWindow.dialog.share.sharefile")); path[0] = TorrentOpener.setFilterPathData( dialog.open() ); }finally{ sem.release(); } } }); sem.reserve(); if ( path[0] != null ){ shareFile( path[0] ); } } }.start();
@Override public void requestComplete( DiskAccessRequest request ) { sem.release(); }
@Override public void run() { init_task.reserve(); } });