Основната ми цел е да изпълнявам процеси един по един в кръгов режим, докато някой извика receive() и бъде блокиран, така че изпълнението да превключи към следващия процес в опашката. Има приложение за контролер, което е кодирано в Java и изпълнява тези процеси (които също са приложения на Java) с помощта на Runtime.getRuntime().exec() и запазва върнатите стойности, които са обекти на процеса.
За да постигна тази цел, трябва да уловя повикванията receive() (или техните състояния, което е блокирано) и да ги кажа на приложението на контролера (master).
Мога да отида на толкова ниско ниво, колкото искате, ако това е възможно.. Първата ми мисъл беше да получа тази информация от драйвера и след това да я кажа на моето Java приложение на контролера. Написах мрежов модул на ядрото на Linux, който улавя операциите за изпращане и получаване, но AFAIK функцията socket.receive() не казва нищо на мрежовия драйвер.
Така че, мисля, че опциите са да получите тази информация или от JVM, по някакъв начин да я получите от линукс команда или така, или евентуално чрез модула на ядрото на линукс?
Какви са вашите предложения?