On Tue, 29 May 2012, vasanth rao naik sabavat wrote:

Can somebody please reply to this email.

basically, can udp_detach() and udp_send() execute simultaneously for a process with multiple threads? if yes, then inp reference in udp_send() will be stale if udp_detach() free's the inp?

You are confusing application-level close() with an actual close in the socket implementation. The socket will remain allocated as long as there are consumers using it, which is ensured through a reference count on the socket, regardless of close(). That isn't to say that there aren't bugs -- this stuff is pretty complex -- but the life cycle and synchronisation models around sockets should prevent the scenario you are describing from occurring.

Robert


Thanks,
Vasanth



On Tue, May 29, 2012 at 10:53 AM, vasanth rao naik sabavat <
vasanth.raon...@gmail.com> wrote:

Hi,

In case of a Multicore cpu system running a multithreaded process.

For protocol control blocks there is no protection provided in the FreeBSD
9. For example, udp_close() and udp_send() access the inp before taking the
lock. Couldn't this cause the inp inconsistency on a multithreaded process
running on multicore cpu system?

Say, If the two threads of a process are concurrently executing socket
send and socket close say on a udp connection (this can happen in case of
poorly written user code.).
udp_close() will access the inp on one cpu and udp_send() will access the
inp on another cpu. it is possible that udp_close() gets the locks first
and free's the inp before udp_send() has a chance to run?

Am I missing anything?

Thanks,
Vasanth





_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to