Well, I have a Perl script run as part of a dialplan and the script creates an EventConsumer. Thus I have one bind / unbind pair for each connection. Is this somehow wrong / against what the EventConsumer API was planned for?
  How could I have a single bind/unbind in this case?

  As for choosing event socket and C application vs a script - what is the main difference / reason to switch: performance of some other issues? My CPU seems to have some cycles to spare.

  Regards,
  Karol


On 11/28/2011 05:36 PM, Anthony Minessale wrote:
you're probably right but I wonder what you are doing that is binding and unbinding so much?
The bind and unbind was designed to be called once when the module is loaded and called again when it exits.

My fear is you are using the embedded scripting event handers in some quick repeating fashion.

I did a commit to flip that case around but I don't encourage you to use embedded scripts for heavy event traffic, that's what event socket is for and if you have the C skills to debug this, you might want to try a C app ;)


2011/11/28 Brian West <brian@freeswitch.org>
Please post it to jira.freeswitch.org

/b

On Nov 28, 2011, at 2:31 AM, Karol Golab wrote:


  Hi!

  I've noticed some strange code in src/switch_event.c - could someone 
smarter (& knowing the mentioned code) please take a look?

  The problem is in the order of calls to locks BLOCK & RWLOCK - it 
differs between functions:

switch_event_bind_removable
        switch_mutex_lock(BLOCK);
        switch_thread_rwlock_wrlock(RWLOCK);

switch_event_unbind_callback
    switch_thread_rwlock_wrlock(RWLOCK);
    switch_mutex_lock(BLOCK);

switch_event_unbind
    switch_thread_rwlock_wrlock(RWLOCK);
    switch_mutex_lock(BLOCK);

  As I understand this may lead to an outright deadlock between bind 
and unbind.

  I stumbled upon this code while debugging what seems like deadlocks 
in our test FS installation put under some heavy load. The load is about 
25 new event subscribers per second (destroyed few seconds later) and 
about 700 events per second.

  Regards,
  Karol


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-dev mailing list
FreeSWITCH-dev@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
http://www.freeswitch.org




--
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
googletalk:conf+888@conference.freeswitch.org
pstn:+19193869900
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com FreeSWITCH-dev mailing list FreeSWITCH-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org


  Karol

-- 
   e-mail: Karol.Golab@tls.pl
      www: http://www.tls.pl
signature: not found

  company: TLS-Technologie Spó³ka z ograniczon± odpowiedzialno¶ci± z siedzib± w Warszawie przy ul. Polnej 50 00-644; KRS 0000073337 (XII Wydzia³ Gospodarczy KRS); NIP 526-25-78-091; VAT ID PL5262578091; REGON 017349442; kap. zak. 50000,00 z³