hhblaze / sharmipc Goto Github PK
View Code? Open in Web Editor NEWIPC [inter-process communication] engine for .NET based on memory-mapped files.
License: BSD 2-Clause "Simplified" License
IPC [inter-process communication] engine for .NET based on memory-mapped files.
License: BSD 2-Clause "Simplified" License
I have a simple app that spins up 100 processes as test and tests some messages going back and forth as i was building it up to test concurrency before i integrate the wrapper around SharmIPC i build to auto serialize and deserialise my classes as well as manage all the processes.
What i found is that if i spin up a lot of processes instantly a large number will of the SharmIPC Slaves will fail to send the first message i try to send. This message is a hartbeat and notification the child process has started so if it fails my child process shuts down. Interesting thing i found is the more i delay the start up of each new process the more child processes work successfully. For example at a 1 second delay 50/100 will start and send first message without error but at 2 second delay then 75/100 will start successfully and send first message.
Is there any know limits here? I can see the messages that the master and slave have started in console even though there is no way to check it on the IPC instance itself. All i get back the the false for it failing to send and it does not arrive on the receiving side.
Debugging has not helped too much yet and i need to find a way to get the actual error.
I can't say for sure it is not Anti virus or something on my computer causing this but thought i would check first if i am hitting some known issue.
i'm wondering how can such bad sample code get so many starts?
I have two process, A send package, B receive package.
I use RemoteRequestWithoutResponse function to send package.
(a package is 389 byte)
The issue is, it lost some package or wrong order sometimes.
(both of 1.16 and 1.17 )
I could not get this project to work correctly under Mono, please can you confirm that this works on Mono? I am testing under Mono 4.2.1
using Ubuntu 16.04 LTS.
The Mutex, as implemented on Mono does not provide the same inter-process synchronization like it does on Windows going back as far as version 2.8.0.
Are you sure UWP is really supported? I just tried it, did no work, and the documentation says Memory Mapped files are currently not supported by UWP:
MicrosoftDocs/windows-dev-docs#458
Hi, this looks like a VERY nice package, thank you.
When I install from Nuget, the latest 1.16.0, and try to do the new() in your examples, tiesky.com.SharmIpc.eProtocolVersion is not recognized and gives a compile error. When I instead reference your SharmIpc.dll directly (SharmIpc462, built from git clone) the enum is recognized, no build issues.
Best regards,
Dale
Hello,
to me it looks like SharmIPC won't work when the implementation is run as a service. I usually have a project with the implementation, accompanied by a console project (for testing) and the service project. Normally the first started console project registers as a MASTER and the second console project as a SLAVE. When running these projects as a service they don't seem to know each other. Both of them register as MASTER and they can't communicate. Is there any solution to this?
Could you release a strong name signing version on nuget?
Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.