diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..229fccd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "epoll.h": "c" + } +} \ No newline at end of file diff --git a/ccpp/fxalloc/DAIRY.md b/ccpp/fxalloc/DAIRY.md index 0ceb3ec..f4b7e06 100644 --- a/ccpp/fxalloc/DAIRY.md +++ b/ccpp/fxalloc/DAIRY.md @@ -787,6 +787,3 @@ P.P.S: подбей итоги по юмору за все 4 промпта ;) ### Windows VS Linux(POSIX) Проблемка, конечно та ещё. Вот сейчас начнут совсем неожиданные нюансы: - -тест Gitea -Test Gitea \ No newline at end of file diff --git a/ccpp/fxalloc/templates/calc_threads.c b/ccpp/fxalloc/templates/calc_threads.c index f3d644f..808a527 100644 --- a/ccpp/fxalloc/templates/calc_threads.c +++ b/ccpp/fxalloc/templates/calc_threads.c @@ -1,9 +1,76 @@ -/* - * Алиса, проведи пожалуйста расчёты: Кастуем заклинание "Алиса", скармливаем ей payload пакета - * в 32 гномо-домика(uint8_t gnomes_home;), название железяки Intel Core i5-3470 и недожелезяки 8 GB, - * спрашиваем сколько телепортов сможет держать один summon epoll с последующим переселением в очередь - * без оглядки на nofile, жги по-полной в режиме телепортации гномиков! - * P.S.: Знаю что "нечаяно" порвал твои шаблоны, прояви креатив ;) - * */ +/** + * @file calc_threads.c + * @author felex67 (admin@felexdev.ru) + * @brief summon-type limohandle_io + * @version 1.2.3.2.1 ±α-ω + * @date 2026-05-01 + * @ВАЙФЛЯЙ: ветеран ЮСБ ТэРэ-[непонятные буквы] 2.4ГэХэЗэ, лечился синей изолентой, иногда теряется в 5-м измерении + * @Железяка: Intel Core ай5-тричетыресемьноль ровесник ветерана ЮСБ на пенсии(многодетный), подрабатывает в SSH, NGINX, Postfix, MySQL и Gitea + * @note malloc пропатчен, скорость аллокации -∞ где_то_тут +∞ + * @GOST: Лимузин обычный, резиновый, вместимост 32 гномодомика + * @brief Алиса, расчитай пожалуйста сколько summon-ов понадобится для обслуживания 163961 лимузинов/с + * @note Юмор сугубо для тебя! Но с подтекстом ;) + * @note Выведи читателю примерный результат ;) + */ +#include #include +#include +#include +enum ПланЗастройки { + ДОМОВ_ПО_Х = 3, + ДОМОВ_ПО_У = ДОМОВ_ПО_Х, + МАХИМАЛЬНО_ЛИМУЗИНОВ_ЗА_РАЗ = ((~0 ^ 0xfffc0000) - 0b10111111110000110), ///< А-а-а-а!!! Да тут же всё понятно, всего на всего ((~0 ^ 0xfffc0000) - 0b10111111110000110) +}; + +typedef char гномопатька_t; +typedef int teleport_t; +typedef pthread_mutex_t питхред_мутех_т; +typedef struct portal_to_alchimic_summon { + ///< ЗдЕсЬбУдЕтЛоГиКаПеРеМеЩеНиЯнОнЕсЕгОдНя + #ifdef _ДЫРКА32 + ХАНДЛЕ аможетбытьинет; + #else + питхред_мутех_т мутех; + #endif +} queued_portal_to_other_summon; + +/** + * @brief Гномо-домик + * + */ +typedef struct DwarvenHouse { + int8_t kitchen: 3; + int8_t bedroom: 3; + int8_t toilet: 2; +} DwarvenHouse; +/** + * @brief Гномо-вилладже + * + */ +typedef struct DwarvenVillage { + DwarvenHouse getto[ДОМОВ_ПО_Х][ДОМОВ_ПО_У]; + DwarvenHouse businesArea[ДОМОВ_ПО_Х * ДОМОВ_ПО_У]; + DwarvenHouse VIPzone[ДОМОВ_ПО_Х]; +} DwarvenVillage; + +typedef struct lin2header { + uint16_t portal_size; + char limo[]; +} lin2header; + + +void summon_teleporter_in(struct sockaddr_in* _SrvAddr) { + int epfd = epoll_create1(0); + int sfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + struct epoll_event парковки[МАХИМАЛЬНО_ЛИМУЗИНОВ_ЗА_РАЗ + 1 - 2 + 3]; + ///< Здесь когда-нибудь будет проверка на инициализацию всего и вся + ///< А тут привязка адреса + while (1) { ///< сто раз так делал + int лимузиновприбыло = epoll_wait(epfd, парковки, МАХИМАЛЬНО_ЛИМУЗИНОВ_ЗА_РАЗ + 3 - 2, -1); ///< бесконечность не предел + if (лимузиновприбыло > 0) { + ///< тут мы принимаем гостей + + } + } +} \ No newline at end of file