Showing results for 
Show  only  | Search instead for 
Did you mean: 

LM_A_CHECKOUTFILTER Feature Documentation Clarification

LM_A_CHECKOUTFILTER Feature Documentation Clarification

Throwing light on the Statement "When you use the callback function, disable automatic heartbeat and execute with manual heartbeat to avoid deadlocks "  mentioned  in the Product Documentation of FNP (fnp_PR-LF.pdf/pg.135 ) 


  • The function pointer LM_A_CHECKOUTFILTER (or the extended version, LM_A_CHECKOUTFILTER_EX) is set to point to a checkout filter callback function. This filter function is invoked each time lc_checkout finds a FEATURE/INCREMENT line that is a candidate for fulfilling the license request.
  • Candidates are selected based on the feature name.
    This filter provides the application the opportunity to examine the FEATURE/INCREMENT line before lc_checkout processes it, and either allows lc_checkout to proceed processing the line or rejects this particular line. lc_checkout may still reject the line even though the filter function allows processing to proceed.
  • The LM_A_CHECKOUTFILTER routine is called as follows:
    status = (*myCheckoutFilter)(config);
    status = (*myCheckoutFilterEx)(job, config, vendor_data);




Explanation of the Note 

  • The statement here is an historical update made in the document.
  • In the past there were issues seen in and around deadlock scenarios where automatic heartbeat had been executed before the checkout procedure could get completed .
  •  Checkout filter callback is part of checkout request code flow.
  • Having these apprehension in mind it is proposed to use manual heartbeat with Checkout filter.
Was this article helpful? Yes No
No ratings

Is there a category of functions that can be safely called from within the callback, or is the issue due to the possibility of the callback returning non-zero, thus interrupting  the normal checkout flow? In other words, does the possibility of a deadlock depend on what the callback does (in addition to possibly returning non-zero)?

Version history
Last update:
‎Sep 07, 2020 11:48 PM
Updated by: