http://technorati.com/people/technorati/ketmar/ ([identity profile] http://technorati.com/people/technorati/ketmar/) wrote in [personal profile] psilogic 2008-12-20 11:04 pm (UTC)

нет, программа A хочет запустить программу A. это раз.

два: вот тебе задача: программа A открыла сокетное соединение. дальше она хочет запустить программу B, которая с этим соединением будет работать. вперёд, решай без форка. а я поржу над накромождением костылей, которые еле-еле со скрипом это всё реализуют через жопу. а сценарий из real life, обычный многоклиентский сервер, промеждупрочим.

ну, и подумай над тем, как легче подготовить среду исполнения процесса: долго-долго ебясь вызовами, которые свитчат контексты и что-то там упорно пишут в чужое АП и чужие структуры, или непосредсвенно из АП и окружения, в котором будет жить сей процесс. и что быстрее. и почему у винды никогда не будет быстрого запуска процессов.

хинт: потому что у винды в природе нет механизма fork(), да, который и обеспечивает скорость в данном случае.

ну, и в качестве бонуса ещё задача: проапдейтить работающий бинарь из самого себя. пусть он один себе работает, без соединений всяких. т.е. клиентов на время апдейта можно отстрелить. где новый бинарь — известно, пусть на диске валяется. права, положим, есть.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting