+ if( gUDP_Ports[base/32] == 0xFFFFFFFF )
+ continue ;
+ for( int i = 0; i < 32; i++ )
+ {
+ if( gUDP_Ports[base/32] & (1 << i) )
+ continue ;
+ gUDP_Ports[base/32] |= (1 << i);
+ Mutex_Release(&glUDP_Ports);
+ // If claim succeeds, good
+ if( UDP_int_ClaimPort(Channel, base + i) == 0 )
+ return base + i;
+ // otherwise keep looking
+ Mutex_Acquire(&glUDP_Ports);
+ break;
+ }