ReactOS/Windows *CriticalSection API → Linux
Вчера портировал часть «РеактОС» под Линукс, пришлось разобраться что делает небольшой фрагмент АПИ Виндоуз («РеактОС» — это операционная система, совместима с Виндоуз).
Функции оказались небольшими, но вдруг
#include <pthread.h>
inline void InitializeCriticalSection(CRITICAL_SECTION *cs)
{
pthread_mutexattr_t mAttr;
pthread_mutexattr_settype(&mAttr, PTHREAD_MUTEX_RECURSIVE_NP);
pthread_mutex_init((pthread_mutex_t *) (void *) cs, &mAttr);
pthread_mutexattr_destroy(&mAttr);
}
inline void DeleteCriticalSection(CRITICAL_SECTION *cs)
{
pthread_mutex_destroy((pthread_mutex_t *) (void *) cs);
}
inline void EnterCriticalSection(CRITICAL_SECTION *cs)
{
pthread_mutex_lock ((pthread_mutex_t *) (void *) cs);
}
inline void LeaveCriticalSection(CRITICAL_SECTION *cs)
{
pthread_mutex_unlock ((pthread_mutex_t *) (void *) cs);
}После этого все другие обращения к структуре CRITICAL_SECTION нужно, конечно, убрать, иначе код будет падать.
Лучше сова в руках, чем жаровонок в небе
В Твиттере интересуются моими «экспериментами» по преобразованию меня в «жаворонка».
Напоминаю, что это не эксперимент, а производственная необходимость — мне нужно быть на работе в 9 часов, что для совы довольно рано. Я уже более полутора лет живу в режиме самоизнасилования, в моей жизни и раньше встречались такие моменты — когда я учился. Например, в Университете стало полегче — многие утренние пары можно было прогулять, но кроме этого были ещё школа и техникум.
Напоминаю чем отличается «сова» от просто ленивого человека: если «сова» встаёт раньше положенного, то почти всё утреннее время она будет тупить. В моём случае совсем всё плохо, самое плодотворное у меня время — после 8 вечера, а в десять мне уже желательно лечь спать.
Второе — вставать очень тяжело.
От утреннего тупняка мне никуда не деться,
Одно время в СССР было популярно приучать себя и детей к режиму. Книжки, фильмы, мультики — всё это показывало положительных героев, живущих по режиму. В детстве ничего из этого не вышло, теперь же мой утренний распорядок таков:
7:00 — подъём (никаких вторых и третьих будильников, встаю сразу) 7:05 — лёгкий завтрак 7:15 — душ (в моём случае — ванна, душ я не люблю, ванну — люблю, вода
Кроме того, в выходные я позволяю себе расслабиться, но не «отоспаться» — это, похоже, скорее вредит. Встаю часов в 9—10, очень редко позже, только если плохо себя чувствую.
Плотные (совсем не пропускающие свет) шторы мне посоветовал
Пятничная загадка для PHPшников
В ЖЖ увидел прекрасное — загадку про ПХП.
Те, кто знает этот язык, скажите, почему этот код не выдаёт ошибок или предупреждений (все ошибки, конечно, включены):
<?php
//bolknote.ru
?>