Class DHSessionKeyBuilder.PrecalcRunner

java.lang.Object
java.lang.Thread
net.i2p.util.I2PThread
net.i2p.router.transport.crypto.DHSessionKeyBuilder.PrecalcRunner
All Implemented Interfaces:
Runnable, DHSessionKeyBuilder.Factory
Enclosing class:
DHSessionKeyBuilder

public static class DHSessionKeyBuilder.PrecalcRunner extends I2PThread implements DHSessionKeyBuilder.Factory
Try to keep DH pairs at the ready. It's important to do this in a separate thread, because if we run out, the pairs are generated in the NTCP Pumper thread, and it can fall behind.
  • Constructor Details

  • Method Details

    • shutdown

      public void shutdown()
      Note that this stops the singleton precalc thread. You don't want to do this if there are multiple routers in the JVM. Fix this if you care. See Router.shutdown().
      Since:
      0.8.8
    • run

      public void run()
      Specified by:
      run in interface Runnable
      Overrides:
      run in class I2PThread
    • getBuilder

      public DHSessionKeyBuilder getBuilder()
      Construct a new DH key builder or pulls a prebuilt one from the queue.
      Specified by:
      getBuilder in interface DHSessionKeyBuilder.Factory
      Since:
      0.9 moved from DHSKB
    • returnUnused

      public void returnUnused(DHSessionKeyBuilder builder)
      Return an unused DH key builder to be put back onto the queue for reuse.
      Specified by:
      returnUnused in interface DHSessionKeyBuilder.Factory
      Parameters:
      builder - must not have a peerPublicValue set
      Since:
      0.9.16