Аналог мьютекса для записи-чтения файла - страница 3

 
Alexey Klenov:

а через видновские события подойдет метод ?

но нужно импортировать несколько функций из kernel32.dll

Если да то набросаю код.

Для маркета - нет. Любые библиотеки запрещены.
 
o_O:
FILE_SHARE_READ совместный доступ по чтению со стороны нескольких программ
FILE_SHARE_WRITE совместный доступ по записи со стороны нескольких программ
Разумеется, этот флаг стоит. Но он означает лишь то, что несколько программ могут одновременно читать или писать в файл. К атомарным локировкам это отношения не имеет.
 
для каждого слейва отдельный файл.
 
Rustamzhan Salidzhanov:
для каждого слейва отдельный файл.
Тогда гибкость теряется.
 
Artyom Trishkin:
Тогда гибкость теряется.

   ничего подобного.

  1) каждый слейв при установке пишет файл со своим именем, или вписывает в общий файл строку со своим именем.

  2) как только мастер находит нового слева создает для него датафайл и пишет туда данные

  3) слейв читает их удаляет данные\файл

  4) мастер видит чистый файл\отсутствие файла - пишет новый, пишет новую порцию данных 

  5) каждый слейв при удалении удаляет свой файл\строку в общем файле

  Преимущество - мастер всегда знает количество слейвов, и если слейв не отвечает может просигналить... и т.д. и т.п. 

 
Rustamzhan Salidzhanov:

   ничего подобного.

  1) каждый слейв при установке пишет файл со своим именем, или вписывает в общий файл строку со своим именем.

  2) как только мастер находит нового слева создает для него датафайл и пишет туда данные

  3) слейв читает их удаляет данные\файл

  4) мастер видит чистый файл\отсутствие файла - пишет новый, пишет новую порцию данных 

  5) каждый слейв при удалении удаляет свой файл\строку в общем файле

  Преимущество - мастер всегда знает количество слейвов, и если слейв не отвечает может просигналить... и т.д. и т.п. 

Вполне. Согласен - неподумавши ляпнул. Посыпаю голову пеплом и иду спать, а то ещё чего глупого скажу ;)
 
))))
 
Rustamzhan Salidzhanov:
для каждого слейва отдельный файл.

У меня для каждого слейва отдельный терминал )) Вы что, не поняли, зачем это нужно? Есть 10 инвесторов, у каждого свой счет, соответственно, терминал. Задача - минимизировать нагрузку на процессор. Все тяжелые расчеты делаются на одном терминале, сигналы на открытие позы передаются на другие, а там уже, в зависимости от желания клиента, работает легкая часть принятия решений с индивидуальными настройками и (в будущем) менименеджментом.

Про маркет я писал потому, что хочется зарезервировать такую возможность.

Задача решена, лучше не сделать.

 
Alexey Volchanskiy:

У меня для каждого слейва отдельный терминал )) Вы что, не поняли, зачем это нужно? Есть 10 инвесторов, у каждого свой счет, соответственно, терминал. Задача - минимизировать нагрузку на процессор. Все тяжелые расчеты делаются на одном терминале, сигналы на открытие позы передаются на другие, а там уже, в зависимости от желания клиента, работает легкая часть принятия решений с индивидуальными настройками и (в будущем) менименеджментом.

Про маркет я писал потому, что хочется зарезервировать такую возможность.

Задача решена, лучше не сделать.

  Так они же все на одном компе ? используйте : FILE_COMMON расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files
 
Rustamzhan Salidzhanov:
  Так они же все на одном компе ? используйте : FILE_COMMON расположение файла в общей папке всех клиентских терминалов \Terminal\Common\Files
Друзья, да что с вами ))))) Я же 5 раз повторил, что так и сделал изначально! Этот совет стал хитом данной ветки ))