Compare commits
6 Commits
11cb3ce998
...
38ad2c057c
Author | SHA1 | Date |
---|---|---|
Mr_Goldberg | 38ad2c057c | |
Mr_Goldberg | 0c4831260e | |
Mr_Goldberg | d9173e7b50 | |
Mr_Goldberg | 47c8f0a2a1 | |
Mr_Goldberg | 0ed433cb26 | |
Mr_Goldberg | 81830efd58 |
|
@ -153,6 +153,10 @@ deploy_all:
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- ls -lah
|
- ls -lah
|
||||||
|
- dnf -y install git
|
||||||
|
- mkdir -p release/source_code
|
||||||
|
- git bundle create release/source_code/source_code.bundle --all
|
||||||
|
- "echo \"This is a git bundle of the full repo, to use: git clone source_code.bundle --branch master\" > release/source_code/Readme.txt"
|
||||||
- mv linux release/
|
- mv linux release/
|
||||||
- shopt -s extglob
|
- shopt -s extglob
|
||||||
- rm -rf .g*
|
- rm -rf .g*
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#define STEAMAPI_API static
|
#define STEAMAPI_API static
|
||||||
#define STEAMCLIENT_API S_API_EXPORT
|
#define STEAMCLIENT_API S_API_EXPORT
|
||||||
#else
|
#else
|
||||||
#define STEAMAPI_API S_API
|
#define STEAMAPI_API S_API_EXPORT
|
||||||
#define STEAMCLIENT_API static
|
#define STEAMCLIENT_API static
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -18,25 +18,25 @@
|
||||||
#include "steam_client.h"
|
#include "steam_client.h"
|
||||||
#include "settings_parser.h"
|
#include "settings_parser.h"
|
||||||
|
|
||||||
static bool kill_background_thread;
|
#include <condition_variable>
|
||||||
|
|
||||||
|
static std::condition_variable kill_background_thread_cv;
|
||||||
|
static std::atomic_bool kill_background_thread;
|
||||||
static void background_thread(Steam_Client *client)
|
static void background_thread(Steam_Client *client)
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("background thread starting\n");
|
PRINT_DEBUG("background thread starting\n");
|
||||||
while (1) {
|
std::mutex mtx;
|
||||||
std::this_thread::sleep_for(std::chrono::seconds(1));
|
std::unique_lock<std::mutex> lck(mtx);
|
||||||
global_mutex.lock();
|
|
||||||
bool net_alive = client->network->isAlive();
|
|
||||||
if (!net_alive || kill_background_thread) {
|
|
||||||
global_mutex.unlock();
|
|
||||||
if (!net_alive) {
|
|
||||||
//delete network;
|
|
||||||
}
|
|
||||||
|
|
||||||
kill_background_thread = false;
|
while (1) {
|
||||||
PRINT_DEBUG("background thread exit\n");
|
if (kill_background_thread || kill_background_thread_cv.wait_for(lck, std::chrono::seconds(1)) != std::cv_status::timeout) {
|
||||||
return;
|
if (kill_background_thread) {
|
||||||
|
PRINT_DEBUG("background thread exit\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
global_mutex.lock();
|
||||||
PRINT_DEBUG("background thread run\n");
|
PRINT_DEBUG("background thread run\n");
|
||||||
client->network->Run();
|
client->network->Run();
|
||||||
client->steam_matchmaking->RunBackground();
|
client->steam_matchmaking->RunBackground();
|
||||||
|
@ -730,8 +730,18 @@ void Steam_Client::SetWarningMessageHook( SteamAPIWarningMessageHook_t pFunction
|
||||||
bool Steam_Client::BShutdownIfAllPipesClosed()
|
bool Steam_Client::BShutdownIfAllPipesClosed()
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("BShutdownIfAllPipesClosed\n");
|
PRINT_DEBUG("BShutdownIfAllPipesClosed\n");
|
||||||
kill_background_thread = true;
|
if (!steam_pipes.size()) {
|
||||||
return true;
|
if (background_keepalive.joinable()) {
|
||||||
|
kill_background_thread = true;
|
||||||
|
kill_background_thread_cv.notify_one();
|
||||||
|
background_keepalive.join();
|
||||||
|
}
|
||||||
|
|
||||||
|
PRINT_DEBUG("all pipes closed\n");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expose HTTP interface
|
// Expose HTTP interface
|
||||||
|
|
Loading…
Reference in New Issue