Commit Graph

439 Commits

Author SHA1 Message Date
2bca1fb04e Remove commented includes 2019-06-01 10:54:22 +01:00
81e38d02e6 Move daemonise code to main file, simplifying files 2019-06-01 10:54:22 +01:00
9d484061ad Remove extra comments in config that didn't explain anything 2019-06-01 10:54:22 +01:00
717d6cc003 Correct the inotify failure message 2019-06-01 10:54:22 +01:00
1df1852c76 Move most Wine could out to Wine file 2019-06-01 10:54:22 +01:00
75dc083616 Remove artificial max client limit
This is just additional code that isn't required, and could mask or cause problems.
2019-06-01 10:54:22 +01:00
a837b8630c We depend on DBus development packages now 2019-05-29 16:02:49 +01:00
37108d7c6b Merge branch 'libdbus' 2019-05-29 15:53:27 +01:00
7ebe633026 Merge pull request #150 from mdiluz/fix-inotify
inotify fix
2019-05-29 15:36:19 +01:00
71d4fab15e Fix inotify for https://github.com/FeralInteractive/gamemode/issues/149
1. Don't look for ATTRIB changes - these spawn extra unneeded events when other watches will catch actual edits
	2. Move name check code out of IN_ISDIR, I mistook IN_ISDIR to mean the event was from a dir watch, but this was incorrect
2019-05-28 16:37:34 +01:00
e87a8f19f3 lib: use libdbus for client's dbus messaging
Switch the dbus implementation for the client from systemd to
libdbus. The main reason is that, in flatpaks systemd is not easily
available. No phenomenological change for users of the library,
hopefully.
2019-05-27 13:44:44 +02:00
3a2ebd1cdf Merge pull request #144 from mdiluz/add-config-hotreloading
Add config hot-reloading
2019-05-24 08:58:43 +01:00
a0b850474d Fix comments 2019-05-24 08:48:38 +01:00
a9e3f866a0 Extend the context rwlock around where we apply optimisations
This prevents a potential race condition for when the reaper thread reloads the config
2019-05-24 08:45:14 +01:00
128d9b1364 Merge pull request #145 from mdiluz/fix-clang-static-analyser-issues
Add a clang static analyser check and fix issues
2019-05-24 08:19:43 +01:00
c502e00b7c Merge pull request #146 from gicmo/flatpak_portal
Add support for flatpak portal
2019-05-24 08:15:45 +01:00
83c4d38858 Use PATH_MAX-1 as strncopy doesn't always set the final null byte 2019-05-21 09:06:27 +01:00
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
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
44ab695246 Fix memory leak ambiguity with executable names 2019-05-19 12:47:32 +01:00
9db7442a31 Fix potential memory leak in game_mode_initialise_gpu 2019-05-19 12:47:32 +01:00
23dd471f6b Add clang analyzer check using scan-build 2019-05-19 12:47:32 +01:00
89904602e9 Fix formatting for travis 2019-05-19 11:24:51 +01:00
c276f760c7 Add comment about the reaper thread dealing with config file changes 2019-05-19 11:15:47 +01:00
5d0a413035 Only perform the leave/enter loop when gamemode is already active/has clients 2019-05-19 11:15:47 +01:00
ec55bda3b2 Implement inotify check on the reaper thread for config changes 2019-05-19 11:15:47 +01:00
ceb1808c95 Initial implementation of a RefreshConfig dbus interface 2019-05-19 11:15:47 +01:00
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
b04e39df43 Merge pull request #143 from mdiluz/client-example-check
Small client header improvements
2019-05-19 11:06:48 +01:00
09e475e092 Typo fixes 2019-05-19 11:05:41 +01:00
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
f41ecda047 Fix a missing e 2019-05-15 18:58:12 +01:00
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
ddecc89f10 Add a note about GAMEMODE_AUTO and blocking calls 2019-05-15 18:56:14 +01:00
ddc802573a Remove unneeded includes in gamemode_client.h 2019-05-15 18:56:14 +01:00
a27e741beb Reformat long_options now that travis matches 2019-05-15 18:43:42 +01:00
f401b49b1a Close the openned task dirs to prevent a leak 2019-05-15 18:20:36 +01:00
41d35fa12a Add a zeroed final option for getopt_long for correctness 2019-05-15 18:17:50 +01:00
0d018d91a8 Implement some error logging/checking and clean up some TODO comments 2019-05-13 19:44:22 +01:00
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
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
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
f00a89bc56 Actually apply setpriority to the thread not the client 2019-05-13 19:44:22 +01:00
2d19b61a38 Always log when getpriority fails - we will likely want to know 2019-05-13 19:44:22 +01:00
16c932f5d0 Adjust logs for generic process test function 2019-05-13 19:44:22 +01:00
f152ea9338 Initial implementation of applying renice to all process threads 2019-05-13 19:44:22 +01:00
3ac49385dc Add a test for renicing multithreaded processes 2019-05-13 19:44:22 +01:00
87cfd9c5a6 Remove error log about known issue now that it is fixed 2019-05-13 19:44:22 +01:00
38e48a2d8e Update logging to reflect thread, client relationship 2019-05-13 19:44:22 +01:00
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