Marc Di Luzio
83c4d38858
Use PATH_MAX-1 as strncopy doesn't always set the final null byte
2019-05-21 09:06:27 +01:00
Christian Kellner
0c36f3a6b0
Talk to the portal when running inside a flatpak
...
When we detect that we are running inside a flatpak, talk to the
flatpak portal D-Bus service instead of the session daemon. This
is necessary because flatpak uses pid namespace isolation (see
man pid_namespaces(7)) and thus the pid needs to be translated
from the flatpak pid namespace to the host namespace. This
translation is happening inside the GameMode xdg-desktop-portal.
2019-05-21 00:34:45 +02:00
Christian Kellner
536d687c9a
Use defines for dbus name, path, interface
...
That gives some meaning to the strings and makes it easier to see
what the arguments of sd_bus_call_method mean without checking the
function docs.
2019-05-20 14:39:09 +02:00
Marc Di Luzio
44ab695246
Fix memory leak ambiguity with executable names
2019-05-19 12:47:32 +01:00
Marc Di Luzio
9db7442a31
Fix potential memory leak in game_mode_initialise_gpu
2019-05-19 12:47:32 +01:00
Marc Di Luzio
23dd471f6b
Add clang analyzer check using scan-build
2019-05-19 12:47:32 +01:00
Marc Di Luzio
89904602e9
Fix formatting for travis
2019-05-19 11:24:51 +01:00
Marc Di Luzio
c276f760c7
Add comment about the reaper thread dealing with config file changes
2019-05-19 11:15:47 +01:00
Marc Di Luzio
5d0a413035
Only perform the leave/enter loop when gamemode is already active/has clients
2019-05-19 11:15:47 +01:00
Marc Di Luzio
ec55bda3b2
Implement inotify check on the reaper thread for config changes
2019-05-19 11:15:47 +01:00
Marc Di Luzio
ceb1808c95
Initial implementation of a RefreshConfig dbus interface
2019-05-19 11:15:47 +01:00
Alex Smith
16e7d06083
Fix up error logging in game_mode_resolve_wine_preloader()
...
proc_path was never set to non-null but used for error logging, this
triggered -Wformat-overflow warnings on GCC 9. Use the pid instead
and remove that variable.
2019-05-19 11:12:17 +01:00
Alex Smith
b04e39df43
Merge pull request #143 from mdiluz/client-example-check
...
Small client header improvements
2019-05-19 11:06:48 +01:00
Alex Smith
09e475e092
Typo fixes
2019-05-19 11:05:41 +01:00
Alex Smith
139b644d6d
Merge pull request #142 from mdiluz/fixes-and-longoptions
...
ioprio and niceness fixes, and long cmdline options
2019-05-19 11:01:03 +01:00
Marc Di Luzio
f41ecda047
Fix a missing e
2019-05-15 18:58:12 +01:00
Marc Di Luzio
7ede50af39
Make sure we actually build the examples in the travis tests
...
Otherwise failing changes to gamemode_client.h risk passing
2019-05-15 18:56:14 +01:00
Marc Di Luzio
ddecc89f10
Add a note about GAMEMODE_AUTO and blocking calls
2019-05-15 18:56:14 +01:00
Marc Di Luzio
ddc802573a
Remove unneeded includes in gamemode_client.h
2019-05-15 18:56:14 +01:00
Marc Di Luzio
a27e741beb
Reformat long_options now that travis matches
2019-05-15 18:43:42 +01:00
Marc Di Luzio
f401b49b1a
Close the openned task dirs to prevent a leak
2019-05-15 18:20:36 +01:00
Marc Di Luzio
41d35fa12a
Add a zeroed final option for getopt_long for correctness
2019-05-15 18:17:50 +01:00
Marc Di Luzio
0d018d91a8
Implement some error logging/checking and clean up some TODO comments
2019-05-13 19:44:22 +01:00
Marc Di Luzio
ef29b35258
Make sure we don't leave a hanging gamemode request from the child process
...
Otherwise other tests might have to wait for the reaper thread to clean it up
2019-05-13 19:44:22 +01:00
Marc Di Luzio
139b90e0b7
Refactor the process test function
...
Make it simply take a functor to the per tid get method
2019-05-13 19:44:22 +01:00
Marc Di Luzio
4091a0c532
Now that renice works - set it to a hard fail again
...
Also move some comments around
2019-05-13 19:44:22 +01:00
Marc Di Luzio
f00a89bc56
Actually apply setpriority to the thread not the client
2019-05-13 19:44:22 +01:00
Marc Di Luzio
2d19b61a38
Always log when getpriority fails - we will likely want to know
2019-05-13 19:44:22 +01:00
Marc Di Luzio
16c932f5d0
Adjust logs for generic process test function
2019-05-13 19:44:22 +01:00
Marc Di Luzio
f152ea9338
Initial implementation of applying renice to all process threads
2019-05-13 19:44:22 +01:00
Marc Di Luzio
3ac49385dc
Add a test for renicing multithreaded processes
2019-05-13 19:44:22 +01:00
Marc Di Luzio
87cfd9c5a6
Remove error log about known issue now that it is fixed
2019-05-13 19:44:22 +01:00
Marc Di Luzio
38e48a2d8e
Update logging to reflect thread, client relationship
2019-05-13 19:44:22 +01:00
Marc Di Luzio
bf2b057915
First pass at fix for ioprio not applying to process tree properly
...
See https://github.com/FeralInteractive/gamemode/issues/140
2019-05-13 19:44:22 +01:00
Marc Di Luzio
6639b17500
Make the multithreaded ioprio tests not cause a full failure
2019-05-13 19:44:22 +01:00
Marc Di Luzio
6869470f9b
Fix feature status codes - failures here should be considered a failure
2019-05-13 19:44:22 +01:00
Marc Di Luzio
934b497603
Implement multithreaded test framework (and use for ioprio)
...
ioprio tests will now fail due to https://github.com/FeralInteractive/gamemode/issues/140
2019-05-13 19:44:22 +01:00
Marc Di Luzio
5ffe832faf
Don't store the initial values
...
1. We don't use them anyway (though that could be a feature request)
2. They weren't stored per-client, so would be incorrect anyway
2019-05-11 13:24:13 +01:00
Marc Di Luzio
7f196cdd1a
Fix formatting for travis
2019-05-11 13:06:43 +01:00
Marc Di Luzio
598969a538
Implement restoring the old ioprio value when unregistered
...
Another part of the fix for https://github.com/FeralInteractive/gamemode/issues/141
2019-05-11 12:08:29 +01:00
Marc Di Luzio
2249a71355
Get ready for re-setting ioprio value on un-register
...
Implements tests for feature
Fixes CLAMP macro
2019-05-11 12:08:29 +01:00
Marc Di Luzio
6d14149658
Reset renice value on unregister
...
Part of fixing up https://github.com/FeralInteractive/gamemode/issues/141
2019-05-11 12:08:29 +01:00
Marc Di Luzio
09d63ae4f5
Set up for resetting niceness value
...
Add tests to check this feature
Apply config validation in config for simplicity
Note: if anything messes with the niceness (ie. it starts non-zero, or it's not the expected value during setup, we'll bail out)
2019-05-11 12:08:29 +01:00
Marc Di Luzio
7e5216c4a0
Some comments and cleanup
2019-05-11 12:08:29 +01:00
Marc Di Luzio
a482b72d37
Fix comments in gamemode_client.h
2019-05-11 12:08:29 +01:00
Marc Di Luzio
717777e6c2
Implement PID support for --request and --status
2019-05-11 12:08:29 +01:00
Marc Di Luzio
baff9c0363
Allow for long options using getopt_long
2019-05-11 12:08:29 +01:00
Alex Smith
99c7d04e69
Add a link to the GNOME Shell extension
2019-05-07 09:30:33 +01:00
Alex Smith
4a49a1c2a5
Add a list of games which integrate GameMode support ( #135 )
2019-05-07 09:25:33 +01:00
Alex Smith
67c7aa04d6
Merge pull request #136 from gicmo/sandbox_root
...
Use readlink instead of realpath so find_exe works for flatpaks
2019-05-07 09:15:56 +01:00