Если проблема в больших объёмах, то вот вам такой велосипед:
IPC + SharedMemory. Создаем SM c инфой, отправляем IPC, что нужно прочесть, и читаем из SM.
Вуалая. Циклов ожидания нету, IPC передает dword (или что там минимум).
Icon - менеджер иконок рабочего стола
e-andrew
Если ты думаешь, что ты сильно оригинален в изобретении именно этого велосипеда, то ты ошибаешься. Это как раз первое, что приходит в голову после того как Serge сделал поддержку именованной памяти. Однако этот подход неудобен именно в силу двухэтапности.
Если ты думаешь, что ты сильно оригинален в изобретении именно этого велосипеда, то ты ошибаешься. Это как раз первое, что приходит в голову после того как Serge сделал поддержку именованной памяти. Однако этот подход неудобен именно в силу двухэтапности.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Ну с именованной зоной пропадает одна сложность - не надо искать процесс @icon, просто записал инфу и всё. И "большой объём данных" - это насколько большой? В случае с @icon - это в районе 1КБ (в худшем случае). В принципе, задержка при создании иконки даже в секунду-две - это мелочь. Никто же не собирается создавать несколько иконок в секунду?
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Я нигде не говорил, что это мой велосипед, тем более не говорил, что он оригинальный. И в двухэтапности я тоже не вижу ничего неудобного. Больше кода, да, но тут нужно выбирать: или простой, но менее эффективный цикл, или более сложная (в плане большая) процедура, но эффективная. Могу ошибаться с эффективностью, с ИПэЦэ ни разу не работал.
GerdtR
В случае с именованной зоной может возникнуть другая проблема - синхронизация. Два и более потоков могут захотеть одновременно подать запрос, тут нужно продумывать протокол и они все его должны соблюдать. Именованная память тоже не панацея и у нее по сути вспомогательное значение. В общем вопрос не простой, а я может и зря поднял бучу, а может и не зря. По нескольку раз переписывать реализацию не каждый может захотеть для своего кода, если впоследствии будет внедрена новая система IPC.
В случае с именованной зоной может возникнуть другая проблема - синхронизация. Два и более потоков могут захотеть одновременно подать запрос, тут нужно продумывать протокол и они все его должны соблюдать. Именованная память тоже не панацея и у нее по сути вспомогательное значение. В общем вопрос не простой, а я может и зря поднял бучу, а может и не зря. По нескольку раз переписывать реализацию не каждый может захотеть для своего кода, если впоследствии будет внедрена новая система IPC.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Можешь запустить в эмуляторе Bochs систему (для большей наглядности, так как там замедление больше, чем в Qemu) и по открывать разные пункты в DOCPACK. Желательно маленькие файлы с большими. Там как раз файлы через IPC передаются в Tinypad.e-andrew wrote:Могу ошибаться с эффективностью, с ИПэЦэ ни разу не работал.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Если не передавать мегабайты данных, то она не настолько медленная, чтобы оправдывать постоянное бдение приложения в ожидании.Mario_r4 wrote:Я не стану отрицать очевидную вещь - реализация со стороны ядра почти всегда эффективней. Однако это не меняет того факта, что текущая реализация IPC медленная и не самая удобная для передачи больших объемов данных.
GerdtR
Короче, используй IPC. Другого всё равно в обозримом будущем нет.
Сделаем мир лучше!
Rev #5439
- добавлен вывод номера иконки в окно - удобно когда добавляешь иконку в @docky и software_center знать её номер, а не высчитывать вручную
- 4 строки иконок для удобства
- добавлен вывод номера иконки в окно - удобно когда добавляешь иконку в @docky и software_center знать её номер, а не высчитывать вручную
- 4 строки иконок для удобства
- Attachments
-
-
Screenshot_1.png (48.97 KiB)Viewed 11262 times
-
Из хаоса в космос
Rev #7012
Я обновил диалог добавления/редактирования иконки: теперь используются большие шрифты и я исправил мерцание при нажатии на иконку.
+ rev #7013, #7014: из-за того что файл в оригинале имел имя @icon.asm, возникли проблемы с автосборкой, которые я поидее пофиксил, переименовав его icon.asm, в результате сборки он стает icon, а копируется на образ уже как @icon. Почему-то TUP не может найти icon.asm, возможно, нужно его перезагрузить.
Я обновил диалог добавления/редактирования иконки: теперь используются большие шрифты и я исправил мерцание при нажатии на иконку.
+ rev #7013, #7014: из-за того что файл в оригинале имел имя @icon.asm, возникли проблемы с автосборкой, которые я поидее пофиксил, переименовав его icon.asm, в результате сборки он стает icon, а копируется на образ уже как @icon. Почему-то TUP не может найти icon.asm, возможно, нужно его перезагрузить.
- Attachments
-
-
icon_new.png (44.43 KiB)Viewed 10633 times
-
Из хаоса в космос
Бага: Иконки были перемещены в одно место и наложены друг на друга(все 15 иконок), после нажатия - "Выровнять по сетке", иконки выровнялись по сетке в пространстве одной иконки.
Нужно добавить проверку наложения иконки на иконку.
Нужно добавить проверку наложения иконки на иконку.
Из хаоса в космос
Очень странно что никто не зарепортил баг:
1. Зажимаешь кнопку ЛКМ в окне Tinypad'a например
2. И зажатой тянешь на иконку, отпускаешь
=> иконка нажалась. Исправлено мной в rev.7956.
1. Зажимаешь кнопку ЛКМ в окне Tinypad'a например
2. И зажатой тянешь на иконку, отпускаешь
=> иконка нажалась. Исправлено мной в rev.7956.
Из хаоса в космос
Who is online
Users browsing this forum: No registered users and 1 guest