Ημερήσια αρχεία: 17 Νοεμβρίου 2017


Alternative to sched_yield()

In case sched_yield() does not seem to work for you or it is not available, you can try calling usleep(0) as a workaround.

int sched_yield(void); from (#include <sched.h>) causes the calling thread to relinquish the CPU. The thread is moved to the end of the queue for its static priority and a new thread gets to run.
From: man 3 sched_yield

int usleep(useconds_t usec); from (#include <unistd.h>) suspends execution of the calling thread for (at least) usec microseconds. The sleep may be lengthened slightly by any system activity or by the time spent processing the call or by the granularity of system timers.
From: man 3 usleep

Notes

  • Do not use sleep(0) as a workaround as in some older versions of glibc it will not have any effect at all! In those older versions there is a check if the input parameter is set to 0 and if it is then it will do nothing at all. Specifically the code is as follows:
    if (seconds == 0)
     return 0;

    If you want to review the code changes in sleep.c or see how usleep.c is code, download this archive: [download id=”3897″]
    It contains all versions of sleep.c up to today and the latest version of usleep.c.

  • If the calling thread is the only thread in the highest priority list at that time, it will continue to run after a call to sched_yield().
  • Strategic calls to sched_yield() can improve performance by giving other threads or processes a chance to run when (heavily) contended resources (e.g., mutexes) have been released by the caller. Avoid calling sched_yield() unnecessarily or inappropriately (e.g., when resources needed by other schedulable threads are still held by the caller), since doing so will result in unnecessary context switches, which will degrade system performance.

Login to ‘CytaVoda WiFi’ with no password using your SIM card 1

Using Android devices that carry Cytamobile-Vodafone SIM cards with active RED and BLACK plans, you can connect to the CytaVoda WiFi using SIM authentication instead of using a password.

To do so

  • from the Wi-Fi manager of your cell phone click to connect on the CytaVoda WiFi network
  • at the new window click on the drop-down named EAP method
  • and select the option SIM
  • finally click on the Connect button.

The system will validate you and no further steps needed.

You will notice that your Wi-Fi manager will show a slightly different window than the usual when you click to connect on the network. This is normal as the network offers multiple authentication methods and it is giving you the option to choose which one to use. Of course, we do not know the password and the purpose of this post is to demonstrate the SIM authentication method.

The CytaVoda WiFi has a drawback, it does not offer unlimited data to the users.
Depending on what your SIM plan is, you will have a different monthly data allowance which is renewed every 1st of the month.

The data allowance limits that were applied at the time this post was written, were the following:

  • 200MB for: RED 1
  • 500MB for: RED 2
  • 1GB (1024MB) for: RED 3
  • 2GB (2048MB) for: RED 4 / RED Family / RED Plus / BLACK

You can check the amount of CytaVoda WiFi data that you consumed and the remaining data at the page http://miu.cyta.com.cy.