Question

Is it possible to start a supervisor module in ejabberd which I can add a gen_fsm module to, per connection?

Specifically, I want to create a supervisor which I start when the server starts (or when connections come in). And I have a couple of gen_servers which I want to start, but the part I'm looking for some guidance on is how to dynamically add a gen_fsm module to my supervisor when I see this user's presence become available?

Was it helpful?

Solution

You might want to have a look to the Simple one for on supervisor, which:

is a simplified one_for_one supervisor, where all child processes are dynamically added instances of the same process

...

When started, the supervisor will not start any child processes. Instead, all child processes are added dynamically by calling:

supervisor:start_child(Sup, List)

...

Basically, you use this kind of supervisors when:

  1. All the children are of the same type
  2. You want to add children dynamically

Which appears to be your case.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top