13
src/main.cpp
13
src/main.cpp
@@ -10,12 +10,12 @@
|
||||
|
||||
#include "App.hpp"
|
||||
|
||||
bool check_or_signal_running();
|
||||
bool signal_running();
|
||||
|
||||
std::optional<App> g_app{};
|
||||
|
||||
auto main() -> int {
|
||||
if (check_or_signal_running()) {
|
||||
if (signal_running()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ auto main() -> int {
|
||||
g_app->run();
|
||||
}
|
||||
|
||||
bool check_or_signal_running() {
|
||||
bool signal_running() {
|
||||
const char *lock_path = "/tmp/waylight.lock";
|
||||
int fd = open(lock_path, O_CREAT | O_RDWR, 0666);
|
||||
if (fd == -1)
|
||||
@@ -46,7 +46,12 @@ bool check_or_signal_running() {
|
||||
return true;
|
||||
}
|
||||
|
||||
ftruncate(fd, 0);
|
||||
if (ftruncate(fd, 0) == -1) {
|
||||
close(fd);
|
||||
unlink(lock_path);
|
||||
return false;
|
||||
}
|
||||
|
||||
dprintf(fd, "%d\n", getpid());
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user