Byla vydána nová verze 9.20 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze například nový balíček RustDesk Server pro vzdálený přístup.
Jonathan Thomas oznámil vydání nové verze 3.4.0 video editoru OpenShot (Wikipedie). Představení novinek také na YouTube. Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Byla vydána nová verze 1.6 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Podrobnosti na demo stránce.
Vojtěch Polášek představil Vojtux, tj. linuxovou distribuci pro zrakově postižené uživatele. Vychází ze spinu Fedory 43 s desktopovým prostředím MATE. Konečným cílem je, aby žádný Vojtux nebyl potřeba a požadovaná vylepšení se dostala do upstreamu.
Byla vydána (Mastodon, 𝕏) druhá RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 160 (pdf).
Izrael od února zakáže dětem používat v prostorách základních škol mobilní telefony. Podle agentury AFP to uvedlo izraelské ministerstvo školství, které zdůraznilo negativní dopady, které na žactvo používání telefonů má. Izrael se tímto krokem přidává k rostoucímu počtu zemí, které dětem ve vzdělávacích zařízeních přístup k telefonům omezují.
Internetová společnost Google ze skupiny Alphabet pravděpodobně dostane příští rok pokutu od Evropské komise za nedostatečné dodržování pravidel proti upřednostňování vlastních služeb a produktů ve výsledcích vyhledávání. V březnu EK obvinila Google, že ve výsledcích vyhledávání upřednostňuje na úkor konkurence vlastní služby, například Google Shopping, Google Hotels a Google Flights. Případ staví Google proti specializovaným
… více »Byl oznámen program a spuštěna registrace na konferenci Prague PostgreSQL Developer Day 2026. Konference se koná 27. a 28. ledna a bude mít tři tracky s 18 přednáškami a jeden den workshopů.
Na webu československého síťařského setkání CSNOG 2026 je vyvěšený program, registrace a další informace k akci. CSNOG 2026 se uskuteční 21. a 22. ledna příštího roku a bude se i tentokrát konat ve Zlíně. Přednášky, kterých bude více než 30, budou opět rozdělené do tří bloků - správa sítí, legislativa a regulace a akademické projekty. Počet míst je omezený, proto kdo má zájem, měl by se registrovat co nejdříve.
template<typename T>
class CancelableThreadData
{
protected:
bool _is_cleanup;
T* _data;
static void _cleanup_func(void* d);
public:
template<typename... T_args>
CancelableThreadData(T_args... args);
~CancelableThreadData();
T* operator->() { return _data; }
const T* operator->() const { return _data; }
T& operator*() { return *_data; }
const T& operator*() const { return *_data; }
};
template<typename T>
void CancelableThreadData<T>::_cleanup_func(void* d)
{
((CancelableThreadData<T>*)(d))->_is_cleanup = true;
((CancelableThreadData<T>*)(d))->~CancelableThreadData();
}
template<typename T>
template<typename... T_args>
CancelableThreadData<T>::CancelableThreadData(T_args... args)
{
_is_cleanup = false;
_data = new T(args...);
pthread_cleanup_push(_cleanup_func, (void*)_data);
}
/* Line 272 */template<typename T>
CancelableThreadData<T>::~CancelableThreadData()
{
if (!_is_cleanup) pthread_cleanup_pop(0);
delete _data;
}
Výstup gcc:
Thread.h: In constructor ‘BurnLib::CancelableThreadData<T>::CancelableThreadData(T_args ...)’: Thread.h:272:10: error: expected ‘while’ before ‘<’ token Thread.h:272:10: error: expected ‘(’ before ‘<’ token Thread.h:272:10: error: expected primary-expression before ‘<’ token Thread.h:272:20: error: expected nested-name-specifier before ‘T’ Thread.h:272:20: error: expected ‘(’ before ‘T’ Thread.h:272:20: error: expected ‘)’ before ‘T’ Thread.h:272:20: error: expected ‘;’ before ‘T’ Thread.h:272:21: error: expected unqualified-id before ‘>’ token
Řešení dotazu:
Tak ten manual zahodte a poridte si lepsi:
These functions may be implemented as macros. The application shall ensure that they appear as statements, and in pairs within the same lexical scope (that is, the pthread_cleanup_push() macro may be thought to expand to a token list whose first token is '{' with pthread_cleanup_pop() expanding to a token list whose last token is the corresponding '}' ).
. Nakonec pak skončim u assembleru, kde budu alespoň vědět, co se stane
Unlike some other implementations of threads, C++ destructors for automatic objects are allowed to run in a well defined and consistent manner when a thread is terminated.
....
When a thread terminates, the following occurs: If the thread was ended using pthread_exit(), pthread_cancel() or return from the thread start routine, then cancellation cleanup handlers and data destructors are run.
The thread is terminated. At the time that the thread is terminated, both C++ destructors for automatic objects and AS/400 cancel handlers run.
) mi řeknou, že to můžou být makra ...
Tiskni
Sdílej: