Marc Di Luzio
28243afde9
Clean up the main readme file and split some parts out
...
This groups development, daemon and lib parts together much better
2019-06-01 10:56:27 +01:00
Marc Di Luzio
98e656f9ec
Clean up self explanatory comments
2019-06-01 10:54:22 +01:00
Marc Di Luzio
1b78d0dcf7
Restructure files and libraries
...
Rename a bunch of files to make the consistent
Create two new subdirectories for common code, and utilities
2019-06-01 10:54:22 +01:00
Marc Di Luzio
41988b7f1c
Move code only used for Wine detection into wine file
2019-06-01 10:54:22 +01:00
Marc Di Luzio
2bca1fb04e
Remove commented includes
2019-06-01 10:54:22 +01:00
Marc Di Luzio
81e38d02e6
Move daemonise code to main file, simplifying files
2019-06-01 10:54:22 +01:00
Marc Di Luzio
9d484061ad
Remove extra comments in config that didn't explain anything
2019-06-01 10:54:22 +01:00
Marc Di Luzio
717d6cc003
Correct the inotify failure message
2019-06-01 10:54:22 +01:00
Marc Di Luzio
1df1852c76
Move most Wine could out to Wine file
2019-06-01 10:54:22 +01:00
Marc Di Luzio
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
Alex Smith
a837b8630c
We depend on DBus development packages now
2019-05-29 16:02:49 +01:00
Alex Smith
37108d7c6b
Merge branch 'libdbus'
2019-05-29 15:53:27 +01:00
Alex Smith
7ebe633026
Merge pull request #150 from mdiluz/fix-inotify
...
inotify fix
2019-05-29 15:36:19 +01:00
Marc Di Luzio
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
Christian Kellner
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
Alex Smith
3a2ebd1cdf
Merge pull request #144 from mdiluz/add-config-hotreloading
...
Add config hot-reloading
2019-05-24 08:58:43 +01:00
Marc Di Luzio
a0b850474d
Fix comments
2019-05-24 08:48:38 +01:00
Marc Di Luzio
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
Alex Smith
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
Alex Smith
c502e00b7c
Merge pull request #146 from gicmo/flatpak_portal
...
Add support for flatpak portal
2019-05-24 08:15:45 +01:00
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