Cube/src/ResolverThread.m
Jonathan Schleifer 565a845aaf Convert several files to pure Objective-C
FossilOrigin-Name: eac9e3d9480c641e752bce15f24de48bbb77705cd44ef2bb9a04603ca04c67e1
2025-03-20 20:59:25 +00:00

44 lines
882 B
Objective-C

#import "ResolverThread.h"
#import "ResolverResult.h"
extern SDL_sem *resolversem;
extern OFMutableArray<OFString *> *resolverqueries;
extern OFMutableArray<ResolverResult *> *resolverresults;
@implementation ResolverThread
- (id)main
{
while (!_stop) {
SDL_SemWait(resolversem);
@synchronized(ResolverThread.class) {
if (resolverqueries.count == 0)
continue;
_query = resolverqueries.lastObject;
[resolverqueries removeLastObject];
_starttime = lastmillis;
}
ENetAddress address = { ENET_HOST_ANY, CUBE_SERVINFO_PORT };
enet_address_set_host(&address, _query.UTF8String);
@synchronized(ResolverThread.class) {
[resolverresults
addObject:[ResolverResult resultWithQuery:_query
address:address]];
_query = NULL;
_starttime = 0;
}
}
return nil;
}
- (void)stop
{
_stop = true;
}
@end