mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-06 23:57:22 +02:00
daemon: add game_mode_context_lookup_client method
Like game_mode_context_has_client, but will add a reference to the client, if a match was found.
This commit is contained in:
parent
208f37b7d1
commit
5949a988ea
@ -358,6 +358,29 @@ pid_t *game_mode_context_list_clients(GameModeContext *self, unsigned int *count
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GameModeClient *game_mode_context_lookup_client(GameModeContext *self, pid_t client)
|
||||||
|
{
|
||||||
|
GameModeClient *found = NULL;
|
||||||
|
|
||||||
|
pthread_rwlock_rdlock(&self->rwlock);
|
||||||
|
|
||||||
|
/* Walk all clients and find a matching pid */
|
||||||
|
for (GameModeClient *cl = self->client; cl; cl = cl->next) {
|
||||||
|
if (cl->pid == client) {
|
||||||
|
found = cl;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (found) {
|
||||||
|
game_mode_client_ref(found);
|
||||||
|
}
|
||||||
|
|
||||||
|
pthread_rwlock_unlock(&self->rwlock);
|
||||||
|
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
static int game_mode_apply_client_optimisations(GameModeContext *self, pid_t client)
|
static int game_mode_apply_client_optimisations(GameModeContext *self, pid_t client)
|
||||||
{
|
{
|
||||||
/* Store current renice and apply */
|
/* Store current renice and apply */
|
||||||
|
@ -103,6 +103,14 @@ int game_mode_context_num_clients(GameModeContext *self);
|
|||||||
*/
|
*/
|
||||||
pid_t *game_mode_context_list_clients(GameModeContext *self, unsigned int *count);
|
pid_t *game_mode_context_list_clients(GameModeContext *self, unsigned int *count);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lookup up information about a client via the pid;
|
||||||
|
*
|
||||||
|
* @returns A pointer to a GameModeClient struct or NULL in case no client
|
||||||
|
* with the corresponding id could be found. Adds a reference to
|
||||||
|
* GameModeClient that needs to be released.
|
||||||
|
*/
|
||||||
|
GameModeClient *game_mode_context_lookup_client(GameModeContext *self, pid_t client);
|
||||||
/**
|
/**
|
||||||
* Register a new game client with the context
|
* Register a new game client with the context
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user