Merge branch '86Box:master' into nec-v20
This commit is contained in:
@@ -590,7 +590,7 @@ else
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# Establish general dependencies.
|
# Establish general dependencies.
|
||||||
pkgs="cmake ninja-build pkg-config git wget p7zip-full wayland-protocols tar gzip file appstream"
|
pkgs="cmake ninja-build pkg-config git wget p7zip-full extra-cmake-modules wayland-protocols tar gzip file appstream"
|
||||||
if [ "$(dpkg --print-architecture)" = "$arch_deb" ]
|
if [ "$(dpkg --print-architecture)" = "$arch_deb" ]
|
||||||
then
|
then
|
||||||
pkgs="$pkgs build-essential"
|
pkgs="$pkgs build-essential"
|
||||||
@@ -608,7 +608,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Establish architecture-specific dependencies we don't want listed on the readme...
|
# Establish architecture-specific dependencies we don't want listed on the readme...
|
||||||
pkgs="$pkgs linux-libc-dev:$arch_deb extra-cmake-modules:$arch_deb qttools5-dev:$arch_deb qtbase5-private-dev:$arch_deb"
|
pkgs="$pkgs linux-libc-dev:$arch_deb qttools5-dev:$arch_deb qtbase5-private-dev:$arch_deb"
|
||||||
|
|
||||||
# ...and the ones we do want listed. Non-dev packages fill missing spots on the list.
|
# ...and the ones we do want listed. Non-dev packages fill missing spots on the list.
|
||||||
libpkgs=""
|
libpkgs=""
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ QElapsedTimer elapsed_timer;
|
|||||||
|
|
||||||
static std::atomic_int blitmx_contention = 0;
|
static std::atomic_int blitmx_contention = 0;
|
||||||
static std::recursive_mutex blitmx;
|
static std::recursive_mutex blitmx;
|
||||||
|
static thread_local std::unique_lock blit_lock { blitmx, std::defer_lock };
|
||||||
|
|
||||||
class CharPointer {
|
class CharPointer {
|
||||||
public:
|
public:
|
||||||
@@ -468,17 +469,17 @@ void dynld_close(void *handle)
|
|||||||
void startblit()
|
void startblit()
|
||||||
{
|
{
|
||||||
blitmx_contention++;
|
blitmx_contention++;
|
||||||
if (blitmx.try_lock()) {
|
if (blit_lock.try_lock()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
blitmx.lock();
|
blit_lock.lock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void endblit()
|
void endblit()
|
||||||
{
|
{
|
||||||
blitmx_contention--;
|
blitmx_contention--;
|
||||||
blitmx.unlock();
|
blit_lock.unlock();
|
||||||
if (blitmx_contention > 0) {
|
if (blitmx_contention > 0) {
|
||||||
// a deadlock has been observed on linux when toggling via video_toggle_option
|
// a deadlock has been observed on linux when toggling via video_toggle_option
|
||||||
// because the mutex is typically unfair on linux
|
// because the mutex is typically unfair on linux
|
||||||
|
|||||||
Reference in New Issue
Block a user