так вот в случае отключенного preempt все работает отлично,
а с CONFIG_PREEMPT=y
получаем следущее
[*]schedule
[*]wake_up_process
[*]second out
scheduling while atomic: test3/0x00000002/785
schedule+0x5d7/0x5e
sys_sched_yield+0x64/0x9
coredump_wait+0x38/0xa
do_coredump+0xbb/0x208
....
do_page_faul
[*]list_del
[*]first out
где [*] отладочная печать моего кода,
может кто-нибудь имеет идеи о том что не так в моем коде?
где бы почитать о preemtable, о его реализации и т.д.?
Возьмем semget(2),
int id=semget(IPC_PRIVATE, 1, IPC_CREAT | IPC_EXCL);
теперь в других процессах, если они знают id,
они могут сделать так
semget(id, ...);
тоже самое с msgget и shmget,
также заметим что IPC_PRIVATE==0,
и если запустить на только что загруженном 2.6.12, где до этого не вызывались
semget(msgget, shmget),
int id=semget(IPC_PRIVATE, 1, IPC_CREAT | IPC_EXCL);
в качестве id получим 0, т.е. IPC_PRIVATE,
спрашивается почему так и не является ли это багом?
ЗЫ
если посмотреть код ядра
asmlinkage long sys_semget (key_t key, int nsems, int semflg)
{
int id, err = -EINVAL;
struct sem_array *sma;
Есть сервер использующий TCP,
в него встроен механизм по обнаружению "мертвых" соеденений,
но до того как этот механизм успевает сработать сервер получает SIGPIPE и
прекращает работу.
Самое простое решение замаскировать сигнал или вставить его пустой обработчик,
есть ли другие решения, может быть изменить свойства сокета?
Все проекты:
1)bpg (аналог gpg, но под BSD лицензией)
2)HFS+(файловая система Apple MacOS X)
3)Возможность использовать бинарные NDIS драйверы на NetBSD
4)tmpfs (аналог tmpfs в linux и solaris)
5)userfs
6)wcurses(поддержка юникода для curses)
7)zeroconf
закончились более менее успешны,
часть из них уже можно найти в CVS NetBSD.
язык С,
есть большая программа,
переделали ее в so(dll),
переделка свелась к замене main на my_main,
и написанию набора функций которые дергают my_main с нужными параметрами.
Но вот беда, судя по всему программа писалась в надежде на то, что по завершению main операционная система освободит всю выделенную память,
можно ли это как-нибудь обойти?
Т.е. нужно по завершению my_main освобождать всю память которая в ней выделена, т.е. привести кучу в состояние в каком она была до вызова,
много поточность не нужна, а вот чтобы способ работал под win32 и linux хотелось бы.
ЗЫ
не хочется подключать dmalloc и копаться кучу времени.
KDE опубликовала список проектов победивших в Summer Code.
Наиболее интересные:
* интеграция Eclispe с KDE (исправления CDT, работа с QT Designer)
* улучшение анализа кода в KDevelop
* "Label Browser" - реализация интерфейса похожего на gmail
* унифицированный "просмоторщик" различных форматов (pdf, dvi, ps, doc)
После двух с половиной лет разработки, наконец вышел qt 4.0.0
Новые возможности:
- Qt/Windows интегрирована в Microsoft Visual Studio .NET
- Binaries for both commercial customers and the open source community
- GPL версия для MAC, Windows, X11
- улучшенный и имеющий намного больше возможностей движок для рисования и Qt Designer
- Многочисленные исправления в архитектуре и API
- расширенна поддержка многопоточности, а также много чего еще
Невероятный и неожиданный успех веб-браузера Firefox
заставил Microsoft пошевелиться.
Во вторник Билл Гейтс анонсировал Internet Explorer 7 -
продукт, вновь существующий отдельно от MS Windows.