1 /* 2 * Copyright (C) 2019 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #include "PlatformPosix.h" 10 11 #include "filesystem/SpecialProtocol.h" 12 13 #include <cstdlib> 14 #include <time.h> 15 16 std::atomic_flag CPlatformPosix::ms_signalFlag; 17 Init()18bool CPlatformPosix::Init() 19 { 20 21 if (!CPlatform::Init()) 22 return false; 23 24 // Initialize to "set" state 25 ms_signalFlag.test_and_set(); 26 27 // Initialize timezone information variables 28 tzset(); 29 30 // set special://envhome 31 if (getenv("HOME")) 32 { 33 CSpecialProtocol::SetEnvHomePath(getenv("HOME")); 34 } 35 else 36 { 37 fprintf(stderr, "The HOME environment variable is not set!\n"); 38 return false; 39 } 40 41 return true; 42 } 43 TestQuitFlag()44bool CPlatformPosix::TestQuitFlag() 45 { 46 // Keep set, return true when it was cleared before 47 return !ms_signalFlag.test_and_set(); 48 } 49 RequestQuit()50void CPlatformPosix::RequestQuit() 51 { 52 ms_signalFlag.clear(); 53 } 54