All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bouncycastle.crypto.EntropyDaemon Maven / Gradle / Ivy

Go to download

The Long Term Stable (LTS) Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains the JCA/JCE provider and low-level API for the BC LTS version 2.73.7 for Java 8 and later.

There is a newer version: 2.73.7
Show newest version
package org.bouncycastle.crypto;

import java.util.LinkedList;
import java.util.logging.Level;
import java.util.logging.Logger;

class EntropyDaemon
    implements Runnable
{
    private static final Logger LOG = Logger.getLogger(EntropyDaemon.class.getName());

    private final LinkedList tasks = new LinkedList();

    public EntropyDaemon()
    {
    }

    void addTask(Runnable task)
    {
        synchronized (tasks)
        {
            tasks.add(task);
        }
    }

    public void run()
    {
        while (!Thread.currentThread().isInterrupted())
        {
            Runnable task;
            synchronized (tasks)
            {
                task = tasks.poll();
            }

            if (task != null)
            {
                try
                {
                    task.run();
                }
                catch (Throwable e)
                {
                    // ignore
                }
            }
            else
            {
                try
                {
                    Thread.sleep(5000);
                }
                catch (InterruptedException e)
                {
                    Thread.currentThread().interrupt();
                }
            }
        }

        if (LOG.isLoggable(Level.FINE))
        {
            LOG.fine("entropy thread interrupted - exiting");
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy