Re: [Vala] Vala: Signal from POSIX



Yes, static variables will solve the problem. :D

Thanks Phil!

But there is a limitation to this approach by making Check implement an
interface(i.e. PrintInterface),
where printf_value() is from the interface implemented:

public class Check : PrintInterface{
  ...
  public static int x = 0;

  public open(){
    ...
    signal(SIGUSR1, sighandler);
  }
  ...
  public void sighandler(int signum) {
    x++;
    print_value();
  }

  public void print_value(){
    stdout.printf("%d", x);
  }
  ...
}

Do vala have anyway to get this running?

On Mon, Oct 18, 2010 at 9:13 PM, Phil Housley <undeconstructed gmail com>wrote:

On 18 October 2010 09:35, Ervin Orense Balaoro <ierosvin gmail com> wrote:
Hello,

I dont know if this is the right place to ask questions regarding vala.
But
anyway, ill post the question here just in case someone has the same
experience i had while working with vala using signal from posix.

Code:

public class Check{
 ...
 public int x = 0;

 public open(){
   ...
   signal(SIGUSR1, sighandler);
 }
 ...
 public void sighandler(int signum) {
   stdout.printf("%d", x++);
 }
 ...
}

How do we make our signal handlers access the global variables?
i write a similar code in C, but works okay there.

The callback needed for signal() is a void -> void method, so there is
no way to pass a pointer to your class instance, and so no way for the
callback to invoke the method on the correct instance of the Check
class.

Using a static method and variable should work I assume.

--
Phil Housley



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]