Merge branch '86Box:master' into nec-v20

This commit is contained in:
Jasmine Iwanek
2022-07-25 17:29:30 -04:00
committed by GitHub
2 changed files with 6 additions and 5 deletions

View File

@@ -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=""

View File

@@ -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